对ASP.NET MVC和服务器控件感到困惑

时间:2011-03-30 19:17:40

标签: asp.net-mvc

我读过一个不能使用ASP.NET MVC和服务器控件的ViewState包括TextBox?

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

  

不需要的服务器控件   ViewState完全起作用将起作用   在MVC中,但任何需要的东西   PostBack正常工作不会。

     

所以可绑定的只读控件就像   中继器将工作,但输入   像DropDownList和   TextBox不会。

如果我甚至不能使用TextBox,我该怎么用?

2 个答案:

答案 0 :(得分:3)

您只需使用标准HTML输入字段或HTML帮助程序。

答案 1 :(得分:1)

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

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

 <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有效。