【问题标题】:What is the correct Tag usage in ASP.net Core? TagHelpers vs HTML HelperASP.net Core 中正确的标签用法是什么? TagHelpers 与 HTML 助手
【发布时间】:2016-09-29 07:00:48
【问题描述】:

自 ASP.Net Core 发布以来,Asp 团队正在推动 TagHelpers 的使用,而不是 HTML 助手。

当从控制器构建视图时,ASP.Net Core 使用 TagHelpers 创建添加、编辑页面,但如果您注意到索引页面,它们使用旧的 HTML 帮助器。

//Ex:
    <th>
        @Html.DisplayNameFor(model => model.Package)
    </th>

理解 ASP.net Core Teams 的议程非常令人困惑。有谁知道在 ASP.net Core 中执行此操作的正确方法是什么?我的猜测是@Html.DisplayNameFor(model =&gt; model.Package) 很快就会被标记为弃用。请解释一下?

【问题讨论】:

  • 据我了解,TagHelpers 最大的好处是代码的可读性。我认为 HtmlHelpers 不会从框架中删除,因为这些基本上只是扩展方法,无论如何都可以轻松复制......
  • 检查这个比较from the official docs

标签: asp.net asp.net-mvc asp.net-core-mvc asp.net-core-1.0


【解决方案1】:

不是每个 Html 助手都有一个等效的标签助手。例如,@Html.DisplayNameFor(m =&gt; m.Property)@Html.EditorForModel() 没有等效的标签助手。这是有道理的,因为 @Html.DisplayNameFor(m =&gt; m.Property)@Html.EditorForModel() 并没有真正输出 HTML 标记。

因此,如果有等价物,请使用标签助手而不是 Html 助手。否则,请使用 Html 帮助程序。

我认为@Html.DisplayNameFor(m =&gt; m.Property) 不会被标记为已弃用(任何其他显示模板或编辑器模板也不会,例如@Html.EditorForModel())。这些将继续在 ASP.NET Core 中使用。

此外,您可能对这个线程感兴趣,该线程涉及与 Html.DisplayNameFor 等效的 TagHelper:https://github.com/aspnet/Mvc/issues/2387

【讨论】:

    【解决方案2】:

    根据那个帖子,

    https://github.com/aspnet/Mvc/issues/3003

    目前看来 DisplayNameFor 会继续存在,并且您的解决方案没有 Tag Helper。

    他们经常提到&lt;label asp-for="blabla"&gt;&lt;/label&gt;,但这不一样。

    【讨论】:

      【解决方案3】:

      我认为标签助手是要走的路,它更易读、更干净,可用于创建更复杂的标签,以模拟 Web 表单时代的用户控件

      【讨论】:

        【解决方案4】:

        标签助手是 MVC 中的一项新功能,可用于生成 HTML。语法看起来与 HTML 相同,但由服务器上的 Razor 处理。 Tag Helpers 在许多方面是 Html Helper 方法的替代语法,但它们也提供了一些使用 helper 方法很难或不可能实现的功能。

        你可以找到一些比较:https://docs.asp.net/en/latest/mvc/views/tag-helpers/intro.html#tag-helpers-compared-to-html-helpers

        您可以获取标签助手的更多详细信息:https://dannyvanderkraan.wordpress.com/2016/04/19/asp-net-core-1-0-goodbye-html-helpers-and-hello-taghelpers/

        【讨论】:

          猜你喜欢
          • 2019-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-17
          • 2023-04-03
          • 1970-01-01
          • 2019-01-03
          • 1970-01-01
          相关资源
          最近更新 更多