【问题标题】:AspNetCore custom TagHelpers not displayingAspNetCore 自定义 TagHelpers 不显示
【发布时间】:2017-06-04 06:24:48
【问题描述】:

我正在运行 AspNetCore 应用程序并尝试创建自定义 TagHelper,但它只是不呈现。我已经阅读了很多文章,我认为我拥有我需要的一切。

project.json

"Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.3",

_ViewImport.cshtml

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

ReverseTextDivTagHelper.cs

下面的代码来自我正在尝试的示例

[HtmlTargetElement("tag-name")]
    public class ReverseTextDivTagHelper : TagHelper
    {
        private string _divData = string.Empty;
        public string DivData
        {
            get
            {
                char[] reversedData = _divData.ToCharArray();
                Array.Reverse(reversedData);
                String sDataReversed = new String(reversedData);
                return AllCaps ? sDataReversed.ToUpper() : sDataReversed;
            }
            set { _divData = value; }
        }

        public bool AllCaps { get; set; }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "div";
            output.Content.SetContent(DivData);
        }
    }

然后在局部视图中我这样称呼它

<reverse-text-div all-caps="true" div-data="Jacques"></reverse-text-div>

【问题讨论】:

  • 可以分享_ViewImports.cshtml的全部内容吗?是否添加了 ASP.NET Core Web 应用命名空间@addTagHelper "*, AspNetCoreWebApp1"
  • 是的,我已经添加了
  • 为您的属性添加 HtmlAttributeName,例如[HtmlAttributeName("all-caps")]
  • 一定会尝试并让您知道
  • 这很奇怪,所以我通过简化名称并删除 [HtmlTargetElement("tag-name")] 来让它工作。我要去调查一些,并尝试找出它的实际原因

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


【解决方案1】:

第 1 点: [HtmlTargetElement("tag-name")] 必须与实际的 HTML 标记相同,即 reverse-text-div。应该是[HtmlTargetElement("reverse-text-div")]

第 2 点:为您的房产申请 HtmlAttributeName,例如[HtmlAttributeName("all-caps")]

【讨论】:

    猜你喜欢
    • 2017-11-16
    • 2019-06-15
    • 2015-03-16
    • 2015-10-31
    • 2012-12-25
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多