2010-01-11 19 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"}) 
相關問題