Нет 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
иметь дополнительные свойства, с помощью которых вы можете сузить, когда должен быть запущен помощник тега. Эти дополнительные свойства:
- (HTML) Атрибуты как
id
или жеdisabled
- TagStructure
- ParentTag
Если вы установите значения для этих свойств, вы не увидите 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
приписывать.