ASP.NET MVC中的Razor视图引擎支持@helper定义小帮助方法。看来你可以通过向HtmlHelper添加扩展方法来做同样的事情。在什么情况下最好使用每种?
答案 0 :(得分:8)
主观问题,所以这是我的主观和有偏见的答案:当帮助代码涉及大量C#代码时,使用自定义HtmlHelper,当它是主要标记时,您可以使用@helper
。但假设您有标记时可以使用@Html.Partial("_foo", SomeModel)
之类的部分或@Html.EditorFor(x => x.Foo)
之类的编辑/显示模板,@helper
实际上没有任何实际用途。就个人而言,我从来没有使用@helper
,我从来没有向我一直在咨询的人推荐它。
答案 1 :(得分:7)
是的,这是真的,尽管@helpers似乎更容易使用,如果有一大堆标记包含在内--Html扩展和更广泛的标记不能很好地结合在一起,IMO。
另一方面,@ helpers不能像Html扩展一样进行单元测试。