5

我一直在阅读 MVC 6 中对 Tag Helpers 的新支持,现在需要创建自己的。我看到现有 HTML 元素的内置标签助手都以“asp-”为前缀

例如: <a asp-controller="Home" asp-action="Index">Home</a>

但是我自己的自定义标签助手呢?我是否还应该在前面加上“asp-”以表明它正在服务器上运行。还是应该为框架属性保留?我应该创建自己的项目/公司命名前缀吗?

我错过了关于这个主题的任何指导吗?

4

2 回答 2

5

以现有 HTML 元素为目标的标记助手应在属性名称前加上前缀,表明该属性是可添加的并在服务器上运行。例如,内置的 ASP.NET 5 Tag Helpers 使用“asp-”前缀。“asp-”前缀不被视为保留前缀,因此开发人员可以复制该约定。一些团队更喜欢使用他们自己的命名约定来区分他们的 Tag Helpers。

如果 Tag Helper 以自定义元素为目标,则不应为属性添加前缀。自定义元素仅在服务器上处理,因此您不需要前缀来表示服务器处理。一个很好的例子是 EnvironmentTagHelper。以下标记来自新的 ASP.NET Web 应用程序创建的Views/Shared/_Layout.cshtml文件。

<environment names="Development">

另请参阅创作标签助手

于 2015-09-17T17:19:10.600 回答
0

每个 TagHelper 都针对一个或多个特定的 HTML 元素或自定义标签。

比如看看AnchorTagHelper,可以看到,TargetElementAttribute是用来关联这个 TagHelper 和标准 HTML a 元素的:

[HtmlTargetElement("a", Attributes = ActionAttributeName)]
//...
public class AnchorTagHelper : TagHelper

所以你的自定义标签助手有它自己的前缀。

于 2015-09-16T09:28:32.880 回答