博客
关于我
ASP.NET Core 5.0 MVC 页面标记帮助程序的使用
阅读量:418 次
发布时间:2019-03-06

本文共 1648 字,大约阅读时间需要 5 分钟。

标记帮助程序在 ASP.NET Core 中的应用

标记帮助程序是 ASP.NET Core 中一个强大的功能,它允许开发者通过服务器端代码在 Razor 文件中创建和呈现 HTML 元素。这些标记帮助程序通常使用 C# 编写,通过指定元素名称、属性名称或父标记来为特定的 HTML 元素生成内容。

创建标记帮助程序

要创建一个功能性的标记帮助程序,首先需要在项目中创建一个专门用于存储标记帮助程序的文件夹。将这个文件夹命名为“TagHelpers”,并在其中添加一个名为 EmailTagHelper 的类。

public class EmailTagHelper : TagHelper{    private const string EmailDomain = "contoso.com";    public string MailTo { get; set; }    public override void Process(TagHelperContext context, TagHelperOutput output)    {        output.TagName = "a";        var address = MailTo + "@" + EmailDomain;        output.Attributes.SetAttribute("href", "mailto:" + address);        output.Content.SetContent(address);    }}

使用标记帮助程序

在实际应用中,标记帮助程序可以通过在视图文件中添加特定的指令来使用。例如,在 Privacy.cshtml 页面中添加以下内容:

Support:
Marketing:

运行后,生成的 HTML代码如下:

Support: Support@contoso.com Marketing: Marketing@contoso.com

管理标记帮助程序作用域

标记帮助程序的作用域可以通过以下方式控制:

  • 使用 @addTagHelper 和 @removeTagHelper 指令

    在视图文件中添加 @addTagHelper 指令来启用标记帮助程序,@removeTagHelper 则用于删除特定的标记帮助程序。例如:

    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers@addTagHelper *, net5MVC
  • 在 _ViewImports.cshtml 文件中控制作用域

    将 _ViewImports.cshtml 文件添加到项目根目录下,并在其中添加 @addTagHelper 和 @removeTagHelper 指令。这样可以对所有视图文件生效。

  • 使用退出字符(“!”)禁用标记帮助程序

    在需要禁用的标记中添加退出字符。例如:

    Visual Studio 会自动为结束标记添加相应的退出字符。

  • 使用 @tagHelperPrefix 指定标记帮助程序前缀

    为了更好地管理标记帮助程序,可以在 _ViewImports.cshtml 文件中使用 @tagHelperPrefix 指令,指定一个前缀字符串,以便只允许带有该前缀的标记支持标记帮助程序。例如:

    @tagHelperPrefix th:

    这样,只有 th: 前缀的元素(如 <label> 和 <input>)才能使用标记帮助程序。

    总结

    标记帮助程序是 ASP.NET Core 开发中一个强大的工具,它能够显著简化 HTML 元素的生成和管理。通过合理使用 @addTagHelper、@removeTagHelper 和 @tagHelperPrefix 等指令,可以灵活控制标记帮助程序的作用域和行为,从而提升开发效率和代码质量。

    转载地址:http://rtiuz.baihongyu.com/

    你可能感兴趣的文章
    python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>
    python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    查看>>
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    Python和RF编写web自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>
    python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
    查看>>