HtmlHelper 扩展方法与部分视图?
我很好奇何时建议使用 HtmlHelper 扩展方法以及何时使用部分视图? 在许多情况下,他们似乎同样有资格。
I curious when it's recommended to use HtmlHelper extension method and when to use partial view? They seem to be equally eligible in many cases.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
HtmlHelpers - HTML 的一小部分(自定义链接、按钮、输入等)
PartialViews - 更复杂的东西(表单、页眉、页脚、列表项等)
HtmlHelpers - small bits of HTML (custom links, buttons, inputs, etc)
PartialViews - more complex things (forms, headers, footers, list items, etc)
我个人认为partial view或多或少类似于asp.net中的usercontrol,充当一组可重用的功能元素。 例如,如果您需要制作一个可能出现在整个站点上的登录控制框,则部分视图会更好。 更重要的是,对于部分视图来说,它实际上是独立的,有自己的渲染/处理策略(并且也可能有自己的状态)。
另一方面,htmlhelper 只是节省编码时间和维护的工具,在某种程度上具有更好的可读性你的代码。
I personally think that partial view is more or less similar to usercontrol in asp.net, which act as a group of reusable functional elements. For example, if you need to make a login control box that may appear across the whole site, partial view would be better. What's more for partial view is, it is actually self-contained with its own rendering/processing strategy (and may have its own state as well)
On the other hand, htmlhelper is just tools for saving coding time and maintain, somehow better readability on your codes.
为 HTML 帮助程序(只是方法)编写测试比为部分视图编写测试要容易得多。 如果我正在编写具有逻辑的内容,例如基于视图数据内容的不同输出,那么我会使用一个带有测试的助手。 如果我要创建一段没有任何实际逻辑的可重用内容,那么我可能会使用部分视图。
It's much easier to write tests for HTML helpers (which are just methods) than partial views. If I'm writing something that has logic, such as different output based on the contents of viewdata, then I use a helper with tests around it. If I'm creating a piece of reusable content without any real logic, then I'll probably use a partial view.
只是补充一下:您将使用 htmlhelper 来渲染用户控件中的元素,如果现有的 htmlhelpers 无法完成这项工作...所以让我们把它作为一条规则:
在使用 htmlhelper 而不是 usercontrol(部分视图)的情况下是不好的方法
和
当您使用 htmlhelper 作为渲染页面/用户控件的原子元素的帮助器时的场景是一个好方法
Just to add: you will use htmlhelper for rendering elements in usercontrol, if existing htmlhelpers can't do the job...so let put it as a rule:
In scenario when you using htmlhelper instead of usercontrol(partial view) is bad approach
and
scenario when you using htmlhelper as a helper for rendering atom elements of a page/usercontrol is good approach