如果您开发过ASP.NET Core Web应用程序,您应该已经熟悉了标签帮助器。ASP.NET Core应用程序依赖标签帮助器来呈现表单和表单字段是很常见的。所以,一个视图通常包含许多标签帮助器以及标准的HTML标记。您可以通过多种方式使用标签帮助器来提高开发的效率。本文将讨论其中的某些问题。

1. 使用标签帮助器智能感知

就像HTML元素和JavaScript代码一样,Visual Studio也可以为标签帮助器显示智能感知。如果您使用Visual Studio 2017,您可能需要做一些工作才能获得手智能感知。从工具菜单中选择扩展和更新菜单选项。在结果对话框中查找Razor Language Services

点击下载按钮下载扩展程序,然后关闭Visual Studio,关闭IDE时,将安装Razor Language Services。所以,请耐心等待一会儿。安装完成后,您将看到如下所示的成功对话框:

现在,您可以在Razor视图文件( *.cshtml )中获取智能感知。例如,下图显示的是表单标签帮助器的智能感知。

2. 自定义标签帮助器字体和颜色

如果您的视图中混合使用了许多标签帮助器和HTML标记,您可能希望突出显示标签帮助器为不同字体和颜色。幸运的是,Visual Studio允许您这样做。转到工具 - > 选项,然后转到环境节点下的字体和颜色。

您可以使用“HTML Razor 标签帮助器元素”和“HTML Razor 标签帮助器属性”设置来自定义标签帮助器的外观。下图显示的是自定义 form 标签的样式。

您可以看到标签帮助器的标签以及asp- * 属性显示不同的颜色和字体大小。

3. 禁用标签帮助器

有时您可能需要禁用元素的标签帮助器。例如,您可能希望使用<form>作为标准HTML标记,而不是作为标签帮助器。您可以禁用元素的标签帮助器,如下所示:

如您看到的 ! 字符已添加到<form>的开始和结束标签。属性标签帮助器(如 asp-action 和 asp-controller)将不适用于此<form>元素。

4. 添加标签帮助器前缀

如果您希望区分标签帮助器与普通的HTML标记(不仅仅是视觉区别),那么您可以使用标签前缀。如果您使用ASP.NET Web服务器控件和Web用户控件,那么您应该熟悉标签前缀的想法。要指定标签前缀,请使用   @tagHelperPrefix 指令,如下所示:

    @tagHelperPrefix taghelper:

上面的行对所有的标签帮助器分配了一个前缀taghelper:。您可以在 ViewImports.cshtml 或单个视图文件中写入此行。一旦添加,您需要这样写标签帮助器标记:

您可以看到不能再使用<form>标签,而是使用<taghelper:form>标签。

5. 在视图中添加或删除标签帮助器

如果在Views文件夹中打开 _ViewImports.cshtml 文件,您将找到这一行代码:

    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

  @addTagHelper 用于使一个或多个标签帮助器可用于项目中的所有视图文件。第一个参数*表示所有来自该程序集Microsoft.AspNetCore.Mvc.TagHelpers中的标签帮助器都将可以使用。您还可以指定特定的标签帮助器而不是*。请参阅以下示例:

    @addTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers

上面的代码只添加了FormTagHelper到视图。这样,只有<form>将被视为标签帮助器,智能感知也只会作用于它。

假设您已使用_ViewImports.cshtml文件将所有内置的标签帮助器添加到项目中。您希望将它们提供给大多数视图,除了某几个视图。如何禁用这些视图的标签帮助器?使用   @removeTagHelper指令。以下代码显示了如何实现:

    @removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers

上述代码从特定视图中删除FormTagHelper(您需要将该代码放置在该视图的顶部)。

有关ASP.NET Core 标签帮助器的详细介绍请阅读官方文档:https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro。

相关文章:

  • asp.net core mvc实现伪静态功能

  • 如何在多个项目中分离Asp.Net Core Mvc的Controller和Areas

  • asp.net core 编译mvc,routing,security源代码进行本地调试

  • ASP.NET Core MVC四种枚举绑定方式

  • ASP.NET Core MVC 模型绑定用法及原理

  • ASP.NET Core MVC 控制器创建与依赖注入

  • ASP.NET Core MVC 过滤器介绍

  • ASP.NET Core MVC Tag Helpers 介绍

  • ASP.NET Core MVC – Caching Tag Helpers

  • ASP.NET Core MVC – Form Tag Helpers

  • ASP.NET Core MVC – 自定义 Tag Helpers

  • ASP.NET Core - Razor 页面介绍

  • ASP.NET Core - Razor页面之Handlers处理方法

原文地址:http://www.cnblogs.com/tdfblog/p/five-things-worth-knowing-about-asp-net-core-tag-helpers.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

ASP.NET Core - 关于标签帮助器值得了解的五点相关推荐

  1. ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 标签助手 上一章节我们介绍了视图导入,学习了 ...

  2. ASP.NET Core Filter如何支持依赖注入

    概述 通过使用 ASP.NET Core 中的筛选器,可在请求处理管道中的特定阶段之前或之后运行代码.内置筛选器处理任务,例如:授权(防止用户访问未获授权的资源).响应缓存(对请求管道进行短路出路,以 ...

  3. netcore 编译 html dll,ASP.NET Core Razor 视图预编译、动态编译

    0x01 前言 ASP.NET Core在默认发布情况下,会启动预编译将试图编译成xx.Views.dll,也许在视图中打算修改一处很细小的地方我们需要再重新编译视图进行发布.下面我将从 ASP.NE ...

  4. ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用

    在 ASP.NET Core 中添加静态文件 虽然ASP.NET主要大都做着后端的事情,但前端的一些静态文件也是很重要的.在ASP.NET Core中要启用静态文件,需要Microsoft.AspNe ...

  5. html表格标签高级应用,asp.net core标签助手的高级用法TagHelper+Form

    上一篇博客我讲解了TagHelper的基本用法和自定义标签的生成,那么我就趁热打铁,和大家分享一下TagHelper的高级用法~~,大家也可以在我的博客下随意留言. 对于初步接触asp.net cor ...

  6. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 2

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章.上一篇 Part 1 中介绍了Helm的基本概念与基本使用,这一篇我们来自定义一 ...

  7. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 1

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 关于Helm Why Helm? 虽然K8S能够很好地组织和编排容器,但是缺少 ...

  8. 在ASP.NET Core中使用的ML.NET模型构建器入门

    目录 介绍 背景 先决条件 使用代码 第1步-创建ASP.NET Core应用程序 步骤2:使用ML.NET Model Builder 数据 训练 评估 代码 步骤3:将ML.NET添加到ASP.N ...

  9. ASP.NET Core和Web API:用于管理异常和一致响应的自定义包装器

    目录 介绍 为什么? 怎么做? VMD.RESTApiResponseWrapper Nuget软件包 安装及使用 ASP.NET Core集成 ASP.NET Web API集成 样本响应输出 定义 ...

最新文章

  1. moveit!功能包安装问题
  2. 当前订单不支持只花呗支付是什么意思_1、(跑腿介绍篇)支付宝花呗分期线下推广...
  3. TO B 产品经理:如何推动产品商业化?
  4. 【NLP】相当全面:各种深度学习模型在文本分类任务上的应用
  5. java----OO的概念和设计原则(转)
  6. vue双向数据绑定v-model绑定单选框,复选框,下拉框
  7. 西工大计算机学院交流,2017西工大计算机交流+精贵资料
  8. mysql xa 实现_MySQL数据库分布式事务XA的实现原理分析
  9. maya对象属性_了解每粒子属性和每对象属性
  10. win10 安装db2 10.1 并使用DBserver连接db2数据库
  11. 2021互联网大厂中秋礼盒大盘点
  12. unity图片导入尺寸改变了修改方法
  13. handsontable+vue+ 自定义多选
  14. 数字电子钟—VHDL 设计
  15. Python 三人斗地主手牌生成
  16. eclipse官网32位下载地址
  17. 安装github上下载的python模块
  18. xp系统电脑蓝屏怎么解决,解决xp电脑屏幕蓝屏
  19. Verilog计数器0~9999
  20. Maven动态统一修改版本号

热门文章

  1. document.elementFromPoint
  2. (转)前置++和后置++的区别
  3. ubuntu下搭建java web开发环境的详细步骤
  4. Active Directory系列之十七:实战详解域信任关系
  5. VForum 2008系列之六:分论坛视频-虚拟世界中的应用
  6. WPF实现环(圆)形进度条
  7. Microsoft Build 2021大会开始后,Develop Blog一系列更新
  8. 很遗憾,总对工作挑挑拣拣的家伙,一般结局都不会太好
  9. 聊一聊ABP vNext的模块化系统
  10. Hacker News热文:请停止学习框架,学习领域驱动设计(DDD)(获500个点赞)