Razor视图引擎中存在这三个不同的功能,可用于实现类似的结果。最后,它们中的所有三个都只是呈现HTML代码片段,但定义和使用它们的方式却截然不同。我知道:
Html Helpers被创建为HtmlHelper
类的扩展方法。他们经常使用TagBuilder
类生成一些HTML,并始终返回IHtmlString
。
Razor Helpers(@helper
方法)可以在本地(在同一个razor文件中)或全局(在App_Code
目录中)定义。它们是HTML代码的小片段,可以在Razor文件中重复使用。
最后,部分视图只是常规视图文件,可以使用@Html.Partial
帮助程序包含在其他视图文件中。
我的问题是:
这些功能中是否有特定的方案?或者归结为不同的口味以达到相同的效果?
答案 0 :(得分:67)
HTML帮助程序适用于可重用的组件。例如WebGrid,Pager等。它们作为程序集分发,不依赖于Razor。如果选择此项:
部分视图是一种将大型视图拆分为较小部分以使事物更易于管理的方法。它们对于特定于您的应用程序的可重用性也很有用。它们由视图引擎定位,因此您可以在不同位置(例如,视图/共享)中定义相同的部分,允许您根据控制器,区域或显示模式进行自定义。如果选择此项:
本地助手是一种多次执行相同模板的方法,无需重复自己。您还可以使用它将视图分成几部分以避免深度嵌套,但将所有内容保存在同一个文件中。如果选择此项:
Application Helpers (在App_Code中)是本地帮助程序和HTML帮助程序之间的混合。如果选择此项:
@Html.Partial(name)