【问题标题】:MVC WebForms Controls and EventsMVC WebForms 控件和事件
【发布时间】:2015-10-09 12:35:02
【问题描述】:

您好,

我知道 razor 与网络表单不同,但我也不想混合太多。

我创建了带有 Masterpages 的 ASP.NET MVC WebForms,包括 Pages 和 UserControls。它工作正常,但我想知道如何处理 MVC Webforms 中的点击事件?

Codebehind 文件仍然存在,例如 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 没有 UserControls。我猜你正在使用 WebForms,但我不能确定。提问时请尽量直截了当。
  • 好的,据我了解,拖放控件在 mvc 网络表单中也不起作用。我会删除它们。

标签: c# asp.net-mvc events controls


【解决方案1】:

没有像 MVC Web 表单这样的东西。有 ASP.NET MVC 和 ASP.NET Web 窗体。不同的技术,您不能混合使用它们(尽管它们可以并排使用)。

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

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

【讨论】:

  • 是的,我想发送一封电子邮件,但我不知道。我创建了模型,我在控制器中为它创建了动作。我快完成了,但是如何在 webforms 的 aspx 文件中添加控件?我想我会使用
  • @Cagatay 您不能在 Web 窗体中使用 MVC 助手,也不能在 MVC 中使用用户控件。如果您想从 MVC 发送电子邮件,那么您需要一个收集电子邮件详细信息的视图,该视图应该有一个表单。它应该发布到发送电子邮件的 MVC 操作方法。去尝试写你自己的。如果您遇到困难,请进行一些研究。如果你真的卡住了,然后问一个新问题。
猜你喜欢
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多