Html.Textbox和Html.TextboxFor有什么区别?
Html.Textbox和Html.TextboxFor有什么区别?
Answers:
最终它们都产生了相同的HTML,但是Html.TextBoxFor()的类型很强,而Html.TextBox则不是。
1: @Html.TextBox("Name")
2: Html.TextBoxFor(m => m.Name)
都会产生
<input id="Name" name="Name" type="text" />
那么,在使用上这意味着什么呢?
通常有两件事:
TextBoxFor
将为您生成输入名称。这通常只是属性名称,但对于复杂类型的属性,可以包含下划线,例如“ customer_name”TextBoxFor
版本将允许您使用编译时间检查。因此,如果您更改模型,则可以检查视图中是否存在任何错误。这TextBoxFor
是MVC2中引入的更新的MVC输入扩展。
较新的强类型扩展的主要好处是在编译时而不是运行时显示任何错误/警告。
参见本页。
http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strong-typed-html-helpers.aspx
Html.TextBox和Html.DropDownList不是强类型的,因此它们不需要强类型的视图。这意味着我们可以对所需的任何名称进行硬编码。另一方面,Html.TextBoxFor和Html.DropDownListFor是强类型的,并且需要强类型的视图,并且名称是从lambda表达式推断出来的。
强类型的HTML帮助器还提供编译时间检查。
由于在实时情况下,我们主要使用强类型视图,因此与其相对应的视图相比,更喜欢使用Html.TextBoxFor和Html.DropDownListFor。
无论是使用Html.TextBox和Html.DropDownListFor还是Html.TextBoxFor和Html.DropDownListFor,最终结果都是相同的,即它们产生相同的HTML。
MVC2中添加了强类型HTML帮助器。