ASP.NET MVC:Razor @helper vs HtmlHelper的扩展方法 - 哪个更受欢迎?

Jak*_*les 8 asp.net-mvc html-helper razor

ASP.NET MVC中的Razor视图引擎支持@helper定义小帮助方法.看来你可以通过向HtmlHelper添加扩展方法来做同样的事情.在什么情况下最好每个使用?

Dar*_*rov 8

主观问题,所以这是我的主观和有偏见的答案:当帮助代码涉及大量C#代码时,使用自定义HtmlHelper,当它是主要标记时,您可以使用@helper.但是假设当你有标记你可以使用部分类似@Html.Partial("_foo", SomeModel)或编辑/显示模板时@Html.EditorFor(x => x.Foo),@helper它实际上没有任何实际用途.就个人而言,我从来没有使用@helper过,我从来没有向我一直在咨询的人推荐它.


ata*_*ini 7

是的,这是真的,虽然@helpers似乎还是比较容易的,如果有是一个的包括标记的很大一部分工作 - HTML扩展和更广泛的标记不走那么好一起,IMO.

另一方面,@ helpers不能像Html扩展那样进行单元测试.