电子商务网站 开发,做微信投票的网站,食品网站架构,淮安做网站需要多少钱标记帮助程序是什么标记帮助程序使服务器端代码可以在 Razor 文件中参与创建和呈现 HTML 元素。 例如#xff0c;内置的 ImageTagHelper 可以将版本号追加到图片名称。 每当图片发生变化时#xff0c;服务器都会为图像生成一个新的唯一版本号#xff0c;因此客户端总能获得… 标记帮助程序是什么标记帮助程序使服务器端代码可以在 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 文件中的指令。说明如果为 Home 视图添加空的 Views/Home/_ViewImports.cshtml 文件则不会发生任何更改因为 _ViewImports.cshtml 文件是附加的。添加到 Views/Home/_ViewImports.cshtml 文件不在默认 Views/_ViewImports.cshtml 文件中的任何 addTagHelper 指令都只会将这些标记帮助程序公开给 Home 文件夹中的视图。选择退出字符“!”元素级别退出标记帮助程序使用标记帮助程序选择退出字符“!”可在元素级别禁用标记帮助程序。 例如使用标记帮助程序选择退出字符在 span 中禁用 Email 验证!span asp-validation-forEmail classtext-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 编辑器中输入 lIntelliSense 就会显示匹配的元素不仅会获得 HTML 帮助还会有图标下方带有“”的“ symbol with 将该元素标识为标记帮助程序的目标。纯 HTML 元素如 fieldset显示“”图标。纯 HTML 标记以棕色字体显示 HTML 标记使用默认 Visual Studio 颜色主题时以红色字体显示属性并以蓝色字体显示属性值。输入 label 后IntelliSense 会列出可用的 HTML/CSS 属性和以标记帮助程序为目标的属性通过 IntelliSense 语句完成功能按 Tab 键即可用选择的值完成语句只要输入标记帮助程序属性标记和属性字体就会更改。如果使用默认的 Visual Studio“蓝色”或“浅色”颜色主题则字体是粗体紫色。如果使用“深色”主题则字体为粗体青色。本文档中的图像在使用默认主题时截取的。可在双引号 () 内输入 Visual Studio CompleteWord 快捷方式默认值为 Ctrl空格键即可使用 C#就像在 C# 类中一样。IntelliSense 会显示页面模型上的所有方法和属性。由于属性类型是 ModelExpression所以这些方法和属性可用。在下图中我正在编辑 Register 视图所以 RegisterViewModel 是可用的。IntelliSense 会列出页面上模型可用的属性和方法。丰富 IntelliSense 环境可帮助选择 CSS 类自定义标记帮助程序元素字体可以从 工具 选项 环境 Options Environment 字体和颜色 中自定义字体和着色实例演示如何在ASP.NET Core中创建标记帮助程序标记帮助程序是实现 ITagHelper 接口的任何类。但是在创作标记帮助程序时通常从 TagHelper 派生这样可以访问 Process 方法。创建一个名为 AuthoringTagHelpers 的新 ASP.NET Core 项目。注此项目不需要身份验证。创建一个名为“TagHelpers”的文件夹来保存标记帮助程序。注 TagHelpers 文件夹不是必需的但它是合理的约定。现在让我们开始编写一些简单的标记帮助程序。EmailTagHelper 标记帮助程序如果你正在编写博客引擎并且需要它将营销、支持和其他联系人的电子邮件全部发送到同一个域则可能需要这样的一个标记帮助程序。如下所示先上代码using Microsoft.AspNetCore.Razor.TagHelpers;
using System.Threading.Tasks;namespace AuthoringTagHelpers.TagHelpers
{public class EmailTagHelper : TagHelper{public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output){output.TagName a; // Replaces email with a tagvar address MailTo EmailDomain;output.Attributes.SetAttribute(href, mailto: address);output.Content.SetContent(address);return Task.CompletedTask;}}
}
说明标记帮助程序使用面向根类名称的元素的命名约定减去类名称的 TagHelper 部分。 在此示例中 EmailTagHelper的根名称为_email_因此 email 标记将针对。EmailTagHelper 类从 TagHelper 派生。 TagHelper 类提供编写标记帮助程序的方法和属性。重写的 ProcessAsync 方法控制标记帮助程序在执行时的操作。 TagHelper 类还提供具有相同参数的同步版本 (Process)。类名称的后缀是 TagHelper这不是必需的但被认为是约定的最佳做法。 可将类声明为public class Email : TagHelper标记帮助程序采用 Pascal 大小写格式的类和属性名将转换为各自相应的短横线格式。 因此要使用 MailTo 属性请使用 email mail-tovalue/ 等效项。最后一行为EmailTagHelper标记帮助程序设置已完成的内容。SetAttribute 是添加属性的语法只要属性集合中当前不存在 href 属性该方法就适用于此属性。接下来然我们在Razor页面上应用此标记帮助程序吧。使用以下更改更新 Views/Home/Contact.cshtml 文件中的标记:using AuthoringTagHelpers
addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
addTagHelper AuthoringTagHelpers.TagHelpers.EmailTagHelper, AuthoringTagHelpers
{ViewData[Title] Contact Copy;
}
h2ViewData[Title]./h2
h3ViewData[Message]/h3addressOne Microsoft Way Copy Version br /Redmond, WA 98052-6399br /abbr titlePhoneP:/abbr425.555.0100
/addressaddressstrongSupport:/strongemail mail-toSupport/emailbr /strongMarketing:/strongemail mail-toMarketing/email
/address
说明开头的 addTagHelper 是添加对应的标记帮助程序引用文章开头已经进行了相关阐述第1819行代码标记引用了我们上面编写的 EmailTagHelper 标记帮助程序。mail-to 属性是标记帮助程序采用 Pascal 大小写格式的类和属性名将转换为各自相应的短横线格式。因此要使用 MailTo 属性必须使用 的等效项。这时候运行下程序可以看到生成对应的html标签了a hrefmailto:Supportcontoso.comSupportcontoso.com/a
a hrefmailto:Marketingcontoso.comMarketingcontoso.com/a
在标记帮助程序中使用实体模型添加“Models”文件夹**。将以下 WebsiteContext 类添加到“模型”文件夹using System;namespace AuthoringTagHelpers.Models
{public class WebsiteContext{public Version Version { get; set; }public int CopyrightYear { get; set; }public bool Approved { get; set; }public int TagsToShow { get; set; }}
}
将以下 WebsiteInformationTagHelper 类添加到“TagHelpers”文件夹。using System;
using AuthoringTagHelpers.Models;
using Microsoft.AspNetCore.Razor.TagHelpers;namespace AuthoringTagHelpers.TagHelpers
{public class WebsiteInformationTagHelper : TagHelper{public WebsiteContext Info { get; set; }public override void Process(TagHelperContext context, TagHelperOutput output){output.TagName p;output.Content.SetHtmlContent(
$ullistrongVersion:/strong {Info.Version}/li
listrongCopyright Year:/strong {Info.CopyrightYear}/li
listrongApproved:/strong {Info.Approved}/li
listrongNumber of tags to show:/strong {Info.TagsToShow}/li/ul);output.TagMode TagMode.StartTagAndEndTag;}}
}
将以下标记添加到 About.cshtml 视图**。 突出显示的标记显示 Web 站点信息。using AuthoringTagHelpers.Models
{ViewData[Title] About;WebsiteContext webContext new WebsiteContext {Version new Version(1, 3),CopyrightYear 1638,Approved true,TagsToShow 131 };
}
h2ViewData[Title]./h2
h3ViewData[Message]/h3p boldUse this area to provide additional information./pbold Is this bold?/boldh3 web site info /h3
website-information infowebContext /
说明在下面的Razor显示的标记中website-information infowebContext / Razor知道 info 属性是一个类而不是字符串并且您想要编写 c # 代码。 编写任何非字符串标记帮助程序属性时都不应使用 字符。运行应用并导航到“关于”视图即可查看 Web 站点信息。总结本文首先带着大家回顾了一下标记帮助程序的一些概念接着给大家介绍了标记帮助程序作用域的注意事项来为接下来的实例演练做准备。然后给大家介绍了标记帮助程序强大的 Intellisense 支持让我们在开发中事半功倍如虎添翼最后就是通过实例代码来做两个标记帮助程序的小例子加深我们的理解。希望对大家有所帮助接下来我会介绍下微软官方提供的一些常用标记帮助程序有兴趣的朋友可以关注下。参考文档https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/tag-helpers/intro?viewaspnetcore-3.1https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/tag-helpers/authoring?viewaspnetcore-3.1往期精彩回顾【推荐】.NET Core开发实战视频课程 ★★★.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划【.NET Core微服务实战-统一身份认证】开篇及目录索引Redis基本使用及百亿数据量中的使用技巧分享附视频地址及观看指南.NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了10个小技巧助您写出高性能的ASP.NET Core代码用abp vNext快速开发Quartz.NET定时任务管理界面在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度现身说法实际业务出发分析百亿数据量下的多表查询优化关于C#异步编程你应该了解的几点建议C#异步编程看这篇就够了给我好看
您看此文用 · 秒转发只需1秒呦~
好看你就点点我