我讀了ScottGu對Strongly Typed Html Helpers的解釋,我明白這讓我有能力更好地編譯視圖。我的印象是,當我在MVC1 Html.TextBox助手中使用model.PropertyName時,我已經有了這個,但顯然這是不正確的。那麼,如何使用lambda表達式對我更好呢?爲什麼強類型的Html Helpers幫助我?
2
A
回答
13
考慮現有的HTML輔助方法的語法:
<%= Html.TextBox("Quantity", Model.Quantity) %>
如果你的對象爲 「CurrentQuantity」 上重命名Quantity
屬性,生成的<input>
元素仍然會指定name="Quantity"
,如果您不記得更改第一個參數,模型綁定將會中斷。
通過使用lambda表達式指定元素的名稱,不正確或拼寫錯誤的屬性名稱將成爲編譯錯誤。
<!-- No magic strings here! -->
<%= Html.TextBoxFor(model => model.CurrentQuantity) %>
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"})
相關問題
- 1. 爲什麼我不能在ASP.NET MVC 2中使用強類型視圖的Html幫助器方法?
- 2. HTML代碼強類型的HTML幫手
- 3. 爲什麼使用CakePHP的HTML Helpers?
- 4. 需要幫助的強類型查看
- 5. 爲什麼我的application_helper.rb沒有幫助?
- 6. 爲什麼我的Html Helpers沒有智能感知?
- 7. 爲什麼幫助類反模式
- 8. 幫助在Asp.net MVC 2中創建強類型的html助手擴展
- 9. ASP.NET MVC強類型HTML助手
- 10. 強類型視圖使用的html助手的正確語法是什麼?
- 11. 幫助我理解OBJ-C類類型
- 12. 爲什麼typedef沒有強類型?
- 13. 什麼時候應該使用Html Helpers,Razor Helpers或Partial Views?
- 14. ASP.NET MVC3,爲什麼我們需要強類型的View?
- 15. Yii2 yii \ helpers \ Url幫助我的網站到另一個網站
- 16. 什麼是Template.myTemplate.helpers(幫助器),爲什麼我應該使用它?
- 17. 如何製作自定義的強類型html幫助器方法?
- 18. 我可以爲MVC的HTML幫助程序使用LambdaExpression類型嗎?
- 19. 什麼「setContentView」幫助
- 20. 爲什麼不應該幫助者在他們的HTML?
- 21. 幫助我理解我爲什麼沒有分配此NSMutableArray的
- 22. 爲什麼不工作我的函數xmlParser()。請幫助我
- 23. 爲什麼Spring的@Transactional幫助性能
- 24. 爲什麼HTML助手類被稱爲Html而不是HtmlHelper?
- 25. 什麼類型的項目會幫助我學習線程編程
- 26. asp.net-mvc強類型助手在底下使用什麼?
- 27. 有什麼意見可以幫助我顯示HTML文本嗎?
- 28. 爲什麼幫助(42)可以工作,但既不幫助(「」)也不幫助(「x」)?
- 29. 如何製作支持泛型類型的HTML Helpers?
- 30. 幫助佈局類型
嗯,是的,因爲前面的HtmlHelper方法中的第一個參數「Quantity」是當提交值時試圖綁定回來的東西。現在我懂了。 – 2010-01-11 23:12:33