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