我一直在阅读 MVC 6 中对 Tag Helpers 的新支持,现在需要创建自己的。我看到现有 HTML 元素的内置标签助手都以“asp-”为前缀
例如:
<a asp-controller="Home" asp-action="Index">Home</a>
但是我自己的自定义标签助手呢?我是否还应该在前面加上“asp-”以表明它正在服务器上运行。还是应该为框架属性保留?我应该创建自己的项目/公司命名前缀吗?
我错过了关于这个主题的任何指导吗?
我一直在阅读 MVC 6 中对 Tag Helpers 的新支持,现在需要创建自己的。我看到现有 HTML 元素的内置标签助手都以“asp-”为前缀
例如:
<a asp-controller="Home" asp-action="Index">Home</a>
但是我自己的自定义标签助手呢?我是否还应该在前面加上“asp-”以表明它正在服务器上运行。还是应该为框架属性保留?我应该创建自己的项目/公司命名前缀吗?
我错过了关于这个主题的任何指导吗?
以现有 HTML 元素为目标的标记助手应在属性名称前加上前缀,表明该属性是可添加的并在服务器上运行。例如,内置的 ASP.NET 5 Tag Helpers 使用“asp-”前缀。“asp-”前缀不被视为保留前缀,因此开发人员可以复制该约定。一些团队更喜欢使用他们自己的命名约定来区分他们的 Tag Helpers。
如果 Tag Helper 以自定义元素为目标,则不应为属性添加前缀。自定义元素仅在服务器上处理,因此您不需要前缀来表示服务器处理。一个很好的例子是 EnvironmentTagHelper。以下标记来自新的 ASP.NET Web 应用程序创建的Views/Shared/_Layout.cshtml文件。
<environment names="Development">
另请参阅创作标签助手
每个 TagHelper 都针对一个或多个特定的 HTML 元素或自定义标签。
比如看看AnchorTagHelper,可以看到,TargetElementAttribute
是用来关联这个 TagHelper 和标准 HTML a 元素的:
[HtmlTargetElement("a", Attributes = ActionAttributeName)]
//...
public class AnchorTagHelper : TagHelper
所以你的自定义标签助手有它自己的前缀。