使用Wildcard HtmlTargetElement的TagHelper,这可能吗?

时间:2017-10-24 04:59:22

标签: c# asp.net-core asp.net-core-tag-helpers

我为Bootstrap工具提示编写了一个简单的TagHelper:

[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);
    }
}

目前我已通过HtmlTargetElementAttributebutton元素激活了它。由于我想要,这个taghelper在任何元素上处理,如果tooltip属性存在,我试图设置一个通配符:

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

这似乎不起作用,例如,当我在任何元素上键入tooltip时,我没有语法突出显示。

是否有可能使TagHelper适用于所有代码,而不会为每个可能的代码重复HtmlTargetElementAttribute

1 个答案:

答案 0 :(得分:1)

事实证明,它正是以这种方式运作:

rpcProviderRegistry = session.getSALService(RpcProviderRegistry.class);

但智能感知并不足以认识它。结果页面分配了两个属性。

我通过在调试模式中添加额外的目标元素来解决问题,因为Intellisense对我来说非常重要。

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