Нет Intelisense для пользовательского TagHelper для ModelExpression с использованием [HtmlAttributeName("for")]

Отсутствует intelisense (предложения свойств модели), когда имя атрибута в ModelExpression пользовательского помощника по тегам отличается от "asp-for"


Это не работает:

[HtmlAttributeName("for")] public ModelExpression ForExpression { get; set; }

[HtmlAttributeName("abc-for")] public ModelExpression ForExpression { get; set; }


Это работает как ожидалось - свойства модели перечислены:

[HtmlAttributeName("asp-for")] public ModelExpression ForExpression { get; set; }


ASP.NET Core 2.2

Visual Studio 2017

1 ответ

Во-первых, убедитесь, что вы перестраиваете свой проект после любого изменения имени атрибута html для помощника по тегам, если хотите видеть обновленный intelisense в своих представлениях.

Во-вторых, убедитесь, что дополнительные селекторы не вызывают проблемы. HtmlTargetElementAttribute иметь дополнительные свойства, с помощью которых вы можете сузить, когда должен быть запущен помощник тега. Эти дополнительные свойства:

Если вы установите значения для этих свойств, вы не увидите intelisense в целевом теге HTML, если не выполняете все условия.

Возьмите это к примеру:

[HtmlTargetElement("input")]
public class PlaceholderTagHelper : TagHelper
{
    [HtmlAttributeName("asp-for")]
    public ModelExpression ForExpression { get; set; }
}

Как только ты пишешь <input> пометить интеллект для ModelExpression появится Но если вы добавите disabled атрибут атрибута, например:

[HtmlTargetElement("input", Attributes = "disabled")]
public class PlaceholderTagHelper : TagHelper
{
    [HtmlAttributeName("asp-for")]
    public ModelExpression ForExpression { get; set; }
}

... тогда интеллект появится, как только вы выполните все условия, которые в этом сценарии <input> тег и имеющий disabled приписывать.

Другие вопросы по тегам