【问题标题】:Confused about ASP.NET MVC and Server Control对 ASP.NET MVC 和服务器控制感到困惑
【发布时间】:2011-03-30 19:17:39
【问题描述】:

我读到不能将 ASP.NET MVC 与具有 ViewState 包括 TextBox 的服务器控件一起使用?

http://forums.asp.net/t/1216834.aspx

不需要的服务器控件 ViewState 完全可以工作 在 MVC 中,但任何需要 PostBack 不能正常工作。

如此可绑定的只读控件,例如 中继器将工作,但输入 DropDownList 等控件和 文本框不会。

如果我什至不能使用 TextBox 我应该使用什么?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您只需使用标准的 HTML 输入字段或 HTML 助手。

    【讨论】:

    • 什么无聊的 html 字段什么正在进行中的回归:)
    • ASP.Net MVC 适用于那些不认为服务器控件和所需的 ViewState 是进步但更多是对人类不利的人。
    【解决方案2】:

    ASP.NET 和 ASP.NET MVC 都使用后端编码约定来呈现 HTML 标记。在 ASP.NET 中,约定是使用 Control 类,而在 ASP.NET MVC 中,约定是使用 HtmlHelper 扩展方法。

    TextBox ASP.NET Control 带有以下 ASP.NET 标记

     <asp:TextBox id="sample_tbx" Text="Sample Default Value" runat="server"  />
    

    呈现以下 HTML 标记

     <input type="text" name="sample_tbx" id="sample_tbx" value="Sample Default Value" />
    

    要在 MVC 视图中使用 HtmlHelper 扩展方法获得相同的结果,约定是使用 TextBox() extension method。例如,

     <%= Html.TextBox("sample_tbx", "Sample Default Value") %>
    

    在 ASP.NET 或 ASP.NET MVC 中,可以内联编写 html 标记。所以,简单地写

     <input type="text" name="sample_tbx" id="sample_tbx" value="Sample Default Value" />
    

    适用于 ASP.NET WebForms 或 ASP.NET MVC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2022-01-08
      • 2013-11-21
      相关资源
      最近更新 更多