在MVC中使用HtmlHelper有什么好处吗?

Eri*_*ver 11 asp.net-mvc

是否有一个具体的原因,我应该使用Html.CheckBox,Html.TextBox等方法,而不只是手动编写HTML?

<%= Html.TextBox("uri") %>
Run Code Online (Sandbox Code Playgroud)

呈现以下HTML

<input type="text" value="" name="uri" id="uri"/>
Run Code Online (Sandbox Code Playgroud)

它猜测它可以为您节省一些关键击键但除此之外.是否有一个特定的原因,为什么我应该尽可能地使用HtmlHelpers或者它只是一个偏好的东西?

use*_*060 7

另一个好处是,如果您的ViewData包含与字段名称匹配的值,则将填充它.

例如

ViewData["FirstName"] = "Joe Bloggs"; 

<%=Html.TextBox("FirstName") %>
Run Code Online (Sandbox Code Playgroud)

将呈现

<input type="text" value="Joe Bloggs" id="FirstName" />
Run Code Online (Sandbox Code Playgroud)


Tim*_*uri 5

有很多好处:

它有重载方法来预填充值(格式化,对HTML安全),就像ViewState一样.

它允许内置支持MVC的验证功能.

它允许您通过提供自己的DLL来更改渲染(一种"控制器适配器"类型方法)来覆盖渲染.

它导致了构建自己的"控件"的想法:http://www.singingeels.com/Articles/Building_Custom_ASPNET_MVC_Controls.aspx

  • 不,ViewState不是**,用于保留文本框在回发上的值; 这是IPostBackDataHandler(System.Web.UI命名空间,System.Web程序集)的工作. (2认同)