我什么时候应该使用HtmlHelper扩展方法?

Chr*_*old 3 asp.net-mvc extension-methods html-helper

我越来越多地发现我的ASP.NET MVC视图需要一些逻辑来执行布局的情况.这些例程在我的模型或控制器中都没有.我有3个选择:

  1. 在视图中内联编写大量<%%>.
  2. 在许多部分视图中少写<%%>.
  3. 编写HtmlHelper扩展方法.

这是让我困惑的最后一个选择.如果逻辑只针对那个视图,那么可以这样做吗?扩展名对每个其他视图的Html对象都是"可见的",并且永远不需要它.

有什么建议?

cfe*_*uke 5

我个人更喜欢选项3("编写HtmlHelper扩展方法"),因为这些代码体可以很容易地进行单元测试.

我真的希望扩展方法可以放在内部或嵌套类上,因为你是对的,你将开始使用大量只在一个View中使用的扩展方法来污染你的命名空间.

我建议在View中手动引用的每个View的自定义命名空间中的静态类中隔离这些HtmlHelper扩展方法,以便限制整个项目中可用的扩展方法的数量.