Html.Textbox VS Html.TextboxFor
Html.Textbox和Html.TextboxFor有什么区别?
最终他们都生产相同的HTML,但Html.TextBoxFor()是强types的,而Html.TextBox不是。
1: @Html.TextBox("Name") 2: Html.TextBoxFor(m => m.Name)
都会产生
<input id="Name" name="Name" type="text" />
那么这在使用方面意味着什么呢?
一般有两件事情:
- 键入的
TextBoxFor
将为您生成input名称。 这通常只是属性名称,但是对于复杂types的属性可以包含一个下划线,如'customer_name' - 使用键入的
TextBoxFor
版本将允许您使用编译时检查。 所以,如果你改变你的模型,那么你可以检查你的观点是否有任何错误。
通常认为使用MVC2中添加的HtmlHelpers的强types版本更好。
TextBoxFor
是MVC2中引入的一个更新的MVCinput扩展。
较新的强types扩展的主要好处是在编译时显示任何错误/警告,而不是运行时。
看到这个页面。
http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx
国际海事组织的主要区别是,文本框不强types。 TextboxFor将一个lambda作为参数,告诉帮助者在一个types化视图中使用模型的with元素。
你可以对两者做同样的事情,但是如果可能的话,你应该使用types化的视图和TextboxFor。
Html.TextBox和Html.DropDownList不是强types的,因此它们不需要强types的视图。 这意味着我们可以硬编码任何我们想要的名字。 另一方面,Html.TextBoxFor和Html.DropDownListFor是强types的,并且需要一个强types的视图,名称是从lambdaexpression式中推断出来的。
强types的HTML帮助程序也提供编译时检查。
由于实时,我们大多使用强types的视图,所以更喜欢使用Html.TextBoxFor和Html.DropDownListFor在他们的对手。
无论我们使用Html.TextBox&Html.DropDownList还是Html.TextBoxFor&Html.DropDownListFor,最终结果都是一样的,那就是它们产生的是相同的HTML。
在MVC2中添加了强types的HTML帮助器。