2010-01-11 61 views

回答

13

考虑现有的HTML辅助方法的语法:

<%= Html.TextBox("Quantity", Model.Quantity) %> 

如果你的对象为 “CurrentQuantity” 上重命名Quantity属性,生成的<input>元素仍然会指定name="Quantity",如果您不记得更改第一个参数,模型绑定将会中断。

通过使用lambda表达式指定元素的名称,不正确或拼写错误的属性名称将成为编译错误。

<!-- No magic strings here! --> 
<%= Html.TextBoxFor(model => model.CurrentQuantity) %> 
+0

嗯,是的,因为前面的HtmlHelper方法中的第一个参数“Quantity”是当提交值时试图绑定回来的东西。现在我懂了。 – 2010-01-11 23:12:33

2

当您将属性的名称指定给帮助程序时,会有所改进。使用强类型助手,它使用lambda表达式而不是属性名称来确定要使用哪个属性值。

<%= Html.TextBox("Name") %> 

VS

<%= Html.TextBox(m => m.Name) %> 
+0

快速和对点 TextBoxFor会有所帮助。 :) – BobbyShaftoe 2010-01-12 02:21:10

0

当您错误地提到属性名称时,文本框不会给出编译时错误。它会抛出运行时异常。 TextBoxFor是一种遗传方法,因此当您错误地提到属性名称时,它会给编译时错误。当我们考虑到

@Html.TextBox("Name" ,"value",new { @class="class"}) 

追加合并两个属性名VS

@Html.TextBoxFor(m => m.Name, new { @id="txtValue"}) 
相关问题