HtmlHelper扩展方法与局部视图?

时间:2009-05-20 09:48:27

标签: asp.net-mvc html-helper asp.net-mvc-partialview

我很好奇什么时候建议使用HtmlHelper扩展方法以及何时使用局部视图?在许多情况下,他们似乎同样有资格。

4 个答案:

答案 0 :(得分:16)

HtmlHelpers - 一小部分HTML(自定义链接,按钮,输入等)

PartialViews - 更复杂的东西(表单,页眉,页脚,列表项等)

答案 1 :(得分:13)

我个人认为局部视图或多或少类似于asp.net中的usercontrol,它充当一组可重用的功能元素。例如,如果您需要创建一个可能出现在整个站点上的登录控制框,则部分视图会更好。部分视图的更多内容是,它实际上是自包含的,具有自己的渲染/处理策略(并且可能也有自己的状态)

另一方面,htmlhelper只是用于节省编码时间和维护代码的工具。

答案 2 :(得分:11)

为部分视图编写HTML帮助程序(只是方法)的测试要容易得多。如果我正在编写具有逻辑的内容,例如基于viewdata内容的不同输出,那么我会使用一个带有测试的帮助程序。如果我在没有任何真实逻辑的情况下创建一个可重用的内容,那么我可能会使用局部视图。

答案 3 :(得分:1)

添加:你将使用htmlhelper在usercontrol中渲染元素,如果现有的htmlhelpers无法完成这项工作......那么让我们把它作为规则:

在使用htmlhelper而不是usercontrol(局部视图)的情况下是不好的方法 和 你使用htmlhelper作为帮助来渲染页面/ usercontrol的原子元素的场景是好方法