【问题标题】:When should we use Html Helpers, Razor Helpers or Partial Views?我们什么时候应该使用 Html Helpers、Razor Helpers 或 Partial Views?
【发布时间】:2013-08-05 10:56:51
【问题描述】:

这三个不同的功能存在于 Razor 视图引擎中,可用于实现类似的结果。最后,它们三个都只是渲染 HTML 代码,但定义和使用它们的方式却大不相同。我知道:

Html Helpers 被创建为HtmlHelper 类的扩展方法。他们经常使用TagBuilder 类来生成一些HTML,并且总是应该返回一个IHtmlString

Razor Helpers(@helper 方法)可以在本地(在同一个 razor 文件中)或全局(在App_Code 目录中)定义。它们是 HTML 代码的小 sn-ps,可以专门在 Razor 文件中重复使用。

最后,部分视图只是常规视图文件,可以使用 @Html.Partial 帮助器将其包含在其他视图文件中。

我的问题是:

这些功能中的每一项是否都有特定的场景?还是归结为不同的口味才能达到相同的效果?

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    HTML Helpers 用于可重用组件。例如WebGrid、Pager 等。它们作为程序集分发,不依赖于 Razor。在以下情况下选择:

    • 功能真正可重用并适用于任何应用程序
    • 您不希望人们对其进行修改或对其进行版本化

    部分视图是一种将大视图拆分为较小部分的方法,以使事情更易于管理。它们对于特定于您的应用程序的可重用性也很有用。这些由视图引擎定位,因此您可以在不同的位置(例如视图/共享)定义相同的部分,允许您自定义每个控制器、区域或显示模式。在以下情况下选择:

    • 功能因应用而异
    • 想要根据控制器、区域或显示模式进行自定义

    本地助手是一种多次执行同一个模板的方法,无需重复。您还可以使用它将视图分成多个部分以避免深度嵌套,但将所有内容保存在同一个文件中。在以下情况下选择:

    • 功能是特定于视图的

    应用程序助手(在 App_Code 中)是本地助手和 HTML 助手的混合体。在以下情况下选择:

    • Razor 优于 TagBuilder
    • 不介意分发文件而不是程序集
    • 首选类型安全的方法调用语法而不是@Html.Partial(name)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 2015-04-14
      • 2021-09-07
      • 1970-01-01
      • 2023-03-29
      • 2018-09-11
      • 2011-03-18
      相关资源
      最近更新 更多