MVC WebForms控件和事件

本文关键字:事件 控件 WebForms MVC | 更新日期: 2023-09-27 18:16:51

你好,

我知道剃刀和网络表单不同,但我也不想混太多。

我创建了ASP.NET MVC WebForms,Masterpages包括Pages和UserControls。它工作得很好,但我想知道如何在MVC Webforms中处理点击事件?

Codebehin文件仍然存在,例如default.aspx。cs,如果我可以双击按钮,则它会创建单击事件,但不起作用。

我们可以在MVC中使用asp.net组件吗?"代码隐藏"文件怎么样

(示例控件:asp:label、asp:textbox、asp:hyperlink等(

谢谢,

更新

这是示例代码(contact.aspx(:

<div class="contact_text">
            <asp:Label ID="lbl_namesurname" runat="server" Text="<%$ Resources:contact, lbl_namesurname.Text%>"></asp:Label>
        </div>
        <div class="txt_namesurname">
            <asp:TextBox ID="txt_namesurname" runat="server" ValidationGroup="contact"></asp:TextBox>
</div>
<div><asp:Button ID="btn_send" runat="server"  CssClass="btn_send" Text="<%$ Resources:contact, btn_send.ToolTip%>" ToolTip="<%$ Resources:contact, btn_send.ToolTip%>" OnClick="btn_send_Click" ValidationGroup="contact"/></div> 

contact.aspx。cs文件:

public partial class contact : ViewPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void btn_send_Click(object sender, EventArgs e)
    {
       //old code-behind is not working in mvc
    }
}

}

MVC WebForms控件和事件

没有MVC Web窗体这样的东西。有ASP.NET MVC和ASP.NET Web窗体。不同的技术,你不能把它们混合在一起(尽管它们可以并排放置(。

MVC的生命周期与Web窗体不同,因此不能有代码隐藏或用户控件。MVC必须有不同的想法:请求被路由到控制器。控制器检查请求,对数据检索层进行所需的任何调用,选择一个视图,并将任何必要的数据传递给该视图,该视图被呈现为HTML并发送给客户端。除非您使用AJAX或类似的技术,否则后续的通信也会经过相同的过程。

所以,想想那个按钮会做什么。它应该发电子邮件吗?那么它应该是一个表单提交。它是否应该收集更多的数据并更新已经加载的页面上的DOM?那么AJAX可能更合适。