zoukankan      html  css  js  c++  java
  • 重学ASP.NET Core 中的标记帮助程序

    标记帮助程序是什么

    标记帮助程序使服务器端代码可以在 Razor 文件中参与创建和呈现 HTML 元素。 例如,内置的 ImageTagHelper 可以将版本号追加到图片名称。  每当图片发生变化时,服务器都会为图像生成一个新的唯一版本号,因此客户端总能获得当前图像(而不是过时的缓存图像)。

    作者:依乐祝
    原文链接:https://www.cnblogs.com/yilezhu/p/13197922.html

    标记帮助程序的作用域是如何控制的

    标记帮助程序作用域由 @addTagHelper@removeTagHelper 和“!”选择退出字符等联合控制。下面就一一的进行相关的介绍吧。

    使用 @addTagHelper 添加标记帮助程序

    @addTagHelper 指令让视图可以使用标记帮助程序。 在这种情况下,视图文件是_pages/ViewImports,默认情况下,它由_pages_文件夹和子文件夹中的所有文件继承,这使得标记帮助程序可用。 
    这里公开标记帮助程序有两种方式,如下所示:
    第一种:使用通配符语法(" * ")指定指定程序集(AspNetCore)中的所有标记帮助程序都可用于_Views_目录及其子目录中的每个视图文件。

    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
    

    第二种:使用标记帮助程序的完全限定名,添加某个特定的标记帮助程序。

    @addTagHelper AuthoringTagHelpers.TagHelpers.EmailTagHelper, AuthoringTagHelpers
    

    说明:@addTagHelper 后第一个参数指定要加载的标记帮助程序(我们使用“*”指定加载所有标记帮助程序),第二个参数“Microsoft.AspNetCore.Mvc.TagHelpers”指定包含标记帮助程序的程序集。 
    注:Microsoft.AspNetCore.Mvc.TagHelpers 是内置 ASP.NET Core 标记帮助程序的程序集。

    @removeTagHelper 删除标记帮助程序

    @removeTagHelper@addTagHelper 具有相同的两个参数,它会删除之前添加的标记帮助程序。 例如,应用于特定视图的 @removeTagHelper 会删除该视图中的指定标记帮助程序。 在 Views/Folder/_ViewImports.cshtml 文件中使用 @removeTagHelper,将从 Folder 中的所有视图删除指定的标记帮助程序。

    使用 _ViewImports.cshtml  文件控制标记帮助程序作用域

    可将 _ViewImports.cshtml 添加到任何视图文件夹,视图引擎将同时应用该文件和 Views/_ViewImports.cshtml 文件中的指令。

    说明:

    1. 如果为 Home 视图添加空的 Views/Home/_ViewImports.cshtml 文件,则不会发生任何更改,因为 _ViewImports.cshtml 文件是附加的。
    2. 添加到 Views/Home/_ViewImports.cshtml 文件(不在默认 Views/_ViewImports.cshtml 文件中)的任何 @addTagHelper 指令,都只会将这些标记帮助程序公开给 Home 文件夹中的视图。

    选择退出字符(“!”)元素级别退出标记帮助程序

    使用标记帮助程序选择退出字符(“!”),可在元素级别禁用标记帮助程序。 例如,使用标记帮助程序选择退出字符在 <span> 中禁用 Email 验证:

    <!span asp-validation-for="Email" class="text-danger"></!span>
    

    说明:
    须将标记帮助程序选择退出字符应用于开始和结束标记。 (将选择退出字符添加到开始标记时,Visual Studio 编辑器会自动为结束标记添加相应字符)。 
    添加选择退出字符后,元素和标记帮助程序属性不再以独特字体显示。

    使用 @tagHelperPrefix 阐明标记帮助程序用途

    @tagHelperPrefix 指令可指定一个标记前缀字符串,以启用标记帮助程序支持并阐明标记帮助程序用途。 例如,可以将以下标记添加到 Views/_ViewImports.cshtml 文件:

    @tagHelperPrefix th:
    

    在以下代码图像中,标记帮助程序前缀设置为 th:,所以只有使用前缀 th: 的元素才支持标记帮助程序(可使用标记帮助程序的元素以独特字体显示)。 <label><input> 元素具有标记帮助程序前缀,可使用标记帮助程序,而 <span> 元素则相反。

    适用于 @addTagHelper 的层次结构规则也适用于 @tagHelperPrefix

    标记帮助程序的 Intellisense 支持

    在 Visual Studio 中创建新的 ASP.NET Core web 应用时,它将添加AspNetCore Razor 的NuGet 包 。它 是添加标记帮助程序的工具包。
    假设编写 HTML <label> 元素。 只要在 Visual Studio 编辑器中输入 <l,IntelliSense 就会显示匹配的元素:

    不仅会获得 HTML 帮助,还会有图标(下方带有“<>”的“@" symbol with ")


    将该元素标识为标记帮助程序的目标。 纯 HTML 元素(如 `fieldset`)显示“<>”图标。
    纯 HTML `
  • 相关阅读:
    正则表达式
    python最新版mplfinance中文乱码解决方法
    Python学习笔记:pandas.read_csv分块读取大文件(chunksize、iterator=True)
    pandas,读取或存储DataFrames的数据到mysql中
    BaoStock:使用python的baostock接口,查询季频盈利能力
    win10解决Mysql net start mysql启动,提示发生系统错误 5 拒绝访问
    mysql5.7 本地计算机上的mysql 服务启动后停止 的问题
    获取A股所有的股票代码
    phpcms <= v9.15 任意文件读取漏洞的分析和利用
    ubuntu系统安装搜狗法并设置不能切换的问题解决
  • 原文地址:https://www.cnblogs.com/yilezhu/p/13197922.html
Copyright © 2011-2022 走看看