AspNetCore自定义TagHelpers无法显示

时间:2017-06-04 06:24:49

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

我正在运行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>

1 个答案:

答案 0 :(得分:1)

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

第2点:为您的媒体资源申请HtmlAttributeName,例如[HtmlAttributeName("all-caps")]