TagHelper с подстановочным знаком HtmlTargetElement, возможно ли это?

Я написал простую подсказку TagHelper для Bootstrap:

[HtmlTargetElement("button", Attributes = "tooltip")]
public class TooltipTagHelper : TagHelper
{
    public string Tooltip { get; set; }

    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        if (string.IsNullOrWhiteSpace(Tooltip))
        {
            return;
        }

        output.Attributes.Add("data-toggle", "tooltip");
        output.Attributes.Add("data-original-title", Tooltip);
    }
}

В настоящее время я активировал его через HtmlTargetElementAttribute для элемента button. Поскольку я хочу, чтобы этот taghelper обрабатывался для любого элемента, если присутствует атрибут tooltip, я попытался настроить подстановочный знак:

[HtmlTargetElement("*", Attributes = "tooltip")]

Кажется, это не работает, например, я не выделяю синтаксис, когда набираю tooltip для любого элемента.

Можно ли каким-то образом заставить TagHelper работать со всеми тегами, не повторяя HtmlTargetElementAttribute для каждого возможного тега?


person Christian Gollhardt    schedule 24.10.2017    source источник


Ответы (1)


Оказывается, именно так работает:

[HtmlTargetElement("*", Attributes = "tooltip")]

Но Intellisense недостаточно умен, чтобы распознать это. Полученной странице назначены оба атрибута.

Я работал вокруг, добавляя дополнительные целевые элементы в режиме отладки, поскольку Intellisense очень важен для меня.

#if DEBUG
    [HtmlTargetElement("button", Attributes = "tooltip")]
#endif
    [HtmlTargetElement("*", Attributes = "tooltip")]
person Christian Gollhardt    schedule 24.10.2017