【问题标题】:TagHelper with Wildcard HtmlTargetElement, is this possible?TagHelper 与通配符 HtmlTargetElement,这可能吗?
【发布时间】:2017-10-24 04:59:22
【问题描述】:

我已经为 Bootstrap Tooltips 编写了一个简单的 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

【问题讨论】:

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


    【解决方案1】:

    事实证明,它确实是这样工作的:

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

    但 Intellisense 的智能不足以识别它。生成的页面具有分配给它的两个属性。

    我在调试模式下添加了额外的目标元素,因为 Intellisense 对我来说非常重要。

    #if DEBUG
        [HtmlTargetElement("button", Attributes = "tooltip")]
    #endif
        [HtmlTargetElement("*", Attributes = "tooltip")]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-21
      • 2023-01-18
      • 2011-03-24
      • 2019-01-20
      • 2016-02-10
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多