Должны ли мои пользовательские помощники тегов ASP.Net 5 MVC 6 иметь префикс asp-?

Я читал о новой поддержке вспомогательных функций тегов в MVC 6, и теперь мне нужно создать свою собственную. Я вижу, что все встроенные вспомогательные функции тегов для существующих элементов HTML имеют префикс «asp-».

Например: <a asp-controller="Home" asp-action="Index">Home</a>

Но как насчет моих собственных вспомогательных тегов? Должен ли я также префикс «asp-», чтобы показать, что он работает на сервере. Или это должно быть зарезервировано для атрибутов фреймворка? Должен ли я вместо этого создать свой собственный проект/компанию с префиксом?

Есть ли какие-либо рекомендации по этому вопросу, которые я пропустил?


person Rob Bird    schedule 11.09.2015    source источник
comment
Спасибо за редактирование @Taylor Mullen! Надеюсь, этого достаточно, чтобы снова открыть его. На самом деле я действительно хочу знать ответ, прежде чем я пойду и добавлю свои пользовательские помощники тегов во весь свой код только для того, чтобы изменить их позже. Честно говоря, я не думаю, что на данный момент существует какое-либо официальное руководство по этому поводу.   -  person Rob Bird    schedule 15.09.2015


Ответы (2)


Вспомогательные функции тегов, нацеленные на существующие элементы HTML, должны предварять имена атрибутов префиксом, указывает, что атрибут является аддитивным и выполняется на сервере. Например, встроенные вспомогательные функции тегов ASP.NET 5 используют префикс «asp-». Префикс «asp-» не считается зарезервированным префиксом, поэтому разработчики могут копировать это соглашение. Некоторые команды предпочитают использовать собственное соглашение об именах, чтобы различать вспомогательные функции тегов.

Если вспомогательная функция тега нацелена на пользовательский элемент, атрибуты не должны иметь префикс. Пользовательские элементы обрабатываются только на сервере, поэтому вам не нужен префикс для обозначения обработки на сервере. Хорошим примером является EnvironmentTagHelper. Следующая разметка взята из файла Views/Shared/_Layout.cshtml, созданного новым веб-приложением ASP.NET.

<environment names="Development">

См. также Авторские вспомогательные функции тегов.

person RickAndMSFT    schedule 17.09.2015
comment
Спасибо, очень ценю, что вы прояснили это для меня, прежде чем я зайду слишком далеко с проектом. - person Rob Bird; 17.09.2015

Каждый TagHelper предназначен для одного или нескольких конкретных элементов HTML или пользовательских тегов.

например, посмотрите AnchorTagHelper Как видите, TargetElementAttribute используется для связывания этого TagHelper со стандартным HTML-элементом:

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

Таким образом, у вашего пользовательского вспомогательного тега есть свои собственные префиксы.

person Sirwan Afifi    schedule 16.09.2015
comment
Политика MS в этом отношении заключается в том, что можно использовать префикс asp-. См. мой ответ ниже, который входит в нашу документацию TH. - person RickAndMSFT; 17.09.2015
comment
@RickAnd-MSFT Спасибо за ответ :) - person Sirwan Afifi; 17.09.2015