ASP.NET CORE开发之一 标记帮助程序

一、定位点标记帮助程序A元素

属性描述说明
asp-controller分配用于生成 URL 的控制器  <a href="/Speaker">All Speakers</a>
asp-action属性值表示生成的 href 属性中包含的控制器操作名称<a href="/Speaker/Evaluations">Speaker Evaluations</a>
asp-route-{value}属性可实现通配符路由前缀。 占用 {value} 占位符的所有值都解释为潜在的路由参<a href="/Speaker/Detail/12">SpeakerId: 12</a>
asp-route属性用于创建直接链接到命名路由的 URL[Route("/Speaker/Evaluations", Name = "speakerevals")] public IActionResult Evaluations() => View();

<a asp-route="speakerevals">Speaker Evaluations</a>

asp-all-route-data属性支持创建键值对字典。 键是参数名称,值是参数值。

@{ var parms = new Dictionary<string, string> { { "speakerId", "11" }, { "currentYear", "true" } }; } <a asp-route="speakerevalscurrent" asp-all-route-data="parms">Speaker Evaluations</a>

<a href="/Speaker/EvaluationsCurrent?speaker>Speaker Evaluations</a>

asp-fragment属性可定义要追加到 URL 的 URL 片段。 定位点标记帮助程序添加哈希字符 (#)。<a asp-controller="Speaker" asp-action="Evaluations" asp-fragment="SpeakerEvaluations">Speaker Evaluations</a>
asp-area属性可设置用来设置相应路由的区域名称。 以下示例展示了 asp-area 属性如何导致重新映射路由<a href="/Speaker/Evaluations#SpeakerEvaluations">Speaker Evaluations</a>
asp-protocol属性用于在 URL 中指定协议(比如 https<a href="https://localhost/Home/About">About</a>
asp-host属性用于在 URL 中指定主机名<a href="https://microsoft.com/Home/About">About</a>
asp-page属性用于 Razor 页面。 使用它向特定页设置定位点标记的 href 属性值。 通过在页面名称前面使用正斜杠 (“/”) 作为前缀,可创建 UR

<a asp-page="/Attendee" asp-route-attendee>View Attendee</a>

<a href="/Attendee?attendee>View Attendee</a>

asp-page-handler属性与页一起使用 Razor 。 它用于链接到特定的页处理程序。

<a asp-page="/Attendee" asp-page-handler="Profile" asp-route-attendee>Attendee Profile</a>

<a href="/Attendee?attendee>Attendee Profile</a

二、缓存标记帮助程序cache元素

属性描述说明
enabled确定是否缓存了缓存标记帮助程序所包含的内容

<cache enabled="true"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>

expires-on为缓存项设置一个绝对到期日期。<cache expires-on="@new DateTime(2025,1,29,17,02,0)"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
expires-after设置从第一个请求时间到缓存内容的时间长度。<cache expires-after="@TimeSpan.FromSeconds(120)"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
expires-sliding设置某个缓存项的值未被访问时,该缓存项应被逐出的时间。<cache expires-sliding="@TimeSpan.FromSeconds(60)"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
vary-by-header接受逗号分隔的标头值列表,在标头值发生更改时触发缓存刷新。<cache vary-by-header="User-Agent"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
vary-by-query接受查询字符串(Query) 中逗号分隔的 Keys 列表,它们在任何列出的键值发生更改时触发缓存刷新<cache vary-by-query="Make,Model"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
vary-by-route接受路由参数名称的逗号分隔列表,用于在路由数据参数值发生更改时触发缓存刷新

<cache vary-by-route="Make,Model"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>

cookie接受以逗号分隔的名称列表 cookie ,这些名称会在值更改时触发缓存刷新 cookie<cache vary-by-cookie=".AspNetCore.Identity.Application"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
vary-by-user指定当已登录用户(或上下文主体)发生更改时是否应重置缓存<cache vary-by-user="true"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
vary-by允许自定义缓存的数据。 当属性的字符串值引用的对象发生更改时,会更新缓存标记帮助程序的内容<cache vary-by="@Model"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache>
priority为内置缓存提供程序提供缓存逐出指导<cache priority="High"> Current Time Inside Cache Tag Helper: @DateTime.Now </cache

三、分布式缓存标记帮助程序IDistributedCache (暂不介绍)

四、环境标记帮助程序environment

<environment include="Staging,Production"> <strong>IWebHostEnvironment.EnvironmentName is Staging or Production</strong> </environment>

<environment exclude="Development"> <strong>IWebHostEnvironment.EnvironmentName is not Development</strong> </environment>

五、图像标记帮助程序

<img src="~/images/asplogo.png" asp-append-version="true">

<img src="/images/asplogo.png?v=Kl_dqr9NVtnMdsM2MUg4qthUnWZm5T1fCEimBPWDNgM">

六、链接标记帮助程序link

属性描述说明
href链接的资源的首选地址。 在任何情况下,均会将此地址传递到生成的 HTML。
asp-fallback-href主 URL 失效后要回退到的 CSS 样式表的 URL。
asp-fallback-test-class样式表中定义的用于回退测试的类名称。 有关详细信息
asp-fallback-test-property用于回退测试的 CSS 属性名称。 有关详细信息
asp-fallback-test-value用于回退测试的 CSS 属性值。 有关详细信息

七、部分标记帮助程序

<partial name="Shared/_ProductPartial.cshtml" for="Product">

<partial name="_ProductPartial" model='new Product { Number = 1, Name = "Test product", Description = "This is a test" }'>

八、脚本标记帮助程序script

属性描述说明
asp-fallback-test主脚本中定义的用于回退测试的脚本方法。
asp-fallback-src主 URL 失效后要回退到的脚本标签的 URL。

九、输入标记标签INPUT、Select、textarea等