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