ASP.NET MVC中的Razor視圖引擎支持@helper來定義一些輔助方法。看來你可以通過向HtmlHelper添加擴展方法來做同樣的事情。在什麼情況下最好使用每個?ASP.NET MVC:Razor @helper vs HtmlHelper的擴展方法 - 哪些是首選?
8
A
回答
8
主觀性問題,所以這裏是我的主觀和偏見答案:當輔助代碼涉及大量的C#代碼時,請使用自定義的HtmlHelper,當它是主標記時,您可以使用@helper
。但假設您有標記時可以使用@Html.Partial("_foo", SomeModel)
或@Html.EditorFor(x => x.Foo)
等編輯器/顯示模板,@helper
實際上沒有任何實際用途。就我個人而言,我從來沒有用過@helper
,我從來沒有向我一直在諮詢的人推薦它。
7
是的,的確如此,儘管如果包含大量標記,@helper看起來更容易處理--Html擴展和更廣泛的標記不能很好地結合在一起,IMO。
另一方面,@helpers不能像Html擴展那樣進行單元測試。
+0
+1單元測試非常好。 – 2011-06-08 22:36:22
相關問題
- 1. HtmlHelper擴展方法vs局部視圖?
- 2. 與ASP.NET MVC的HtmlHelper擴展方法
- 3. Asp.Net MVC HtmlHelper擴展方法不顯示
- 4. ASP.NET MVC @helper語法VS HTML輔助擴展方法
- 5. HtmlHelper網格控件的擴展方法
- 6. ASP.NET MVC 3:UrlHelper/HtmlHelper的擴展方法編碼爲HTML
- 7. 使用部分視圖的ASP.NET MVC3 HtmlHelper擴展方法(如BeginForm)?
- 8. asp.net MVC 4 - Htmlhelper擴展
- 9. HtmlHelper擴展方法的Facebook像按鈕
- 10. ASP.Net MVC視圖無法看到HtmlHelper擴展方法
- 11. Static Helper類與實例類的靜態方法vs擴展方法
- 12. 添加一個擴展方法的HtmlHelper在asp.net應用mvc4
- 13. 擴展HtmlHelper RouteLink
- 14. TextBoxFor擴展的HtmlHelper
- 15. 在HtmlHelper擴展方法中執行哪個動作
- 16. NVelocity擴展方法ASP.NET webform
- 17. 模擬出來的HttpContext中的HtmlHelper擴展方法
- 18. 需要幫助想出一個更好的HtmlHelper擴展方法
- 19. 選擇鉻擴展中的元素有哪些方法?
- 20. MVC擴展方法HtmlHelper方法簽名語法
- 21. 標籤VS導航樹。哪個是首選方法?
- 22. 什麼時候應該使用HtmlHelper擴展方法?
- 23. HtmlHelper擴展的動態
- 24. 如何在Html Helper擴展方法中使用Html Form Helper?
- 25. 'Flash Vs tmpfs'哪一個是首選的
- 26. 的HtmlHelper擴展與腳本
- 27. ASP.NET MVC:Razor ActionLink問題
- 28. 自定義HtmlHelper擴展方法在View中不可用?
- 29. 在asp.net中定製HtmlHelper擴展方法的使用問題mvc razor
- 30. 哪些是首選的:Regex.Replace()或。 aRegexObject.Replace()?
這一直是我的想法,特別是它的例子http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax DisplayPrice的-within-razor.aspx,我認爲這是它最適合的代碼類型。幾乎完全無邏輯的代碼隻影響表示。同樣,將您的意見DRYER。 – 2011-06-08 22:12:53
如果視圖引擎發生變化,我們不必重寫.cs中的幫助器方法,而是以聲明的方式(.cshtml)重寫。 – 2011-06-21 16:47:59