Пользовательские TagHelpers AspNetCore не отображаются

Я запускаю приложение 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>

person R4nc1d    schedule 04.06.2017    source источник
comment
Не могли бы вы поделиться всем содержимым _ViewImports.cshtml? Вы добавили пространство имен веб-приложений ASP.NET Core @addTagHelper "*, AspNetCoreWebApp1"?   -  person Sanket    schedule 04.06.2017
comment
Да, я добавил это   -  person R4nc1d    schedule 04.06.2017
comment
Добавьте HtmlAttributeName для своих свойств, например. [HtmlAttributeName("all-caps")]   -  person Sanket    schedule 04.06.2017
comment
Обязательно попробую и сообщу   -  person R4nc1d    schedule 04.06.2017
comment
это странно, поэтому я заработал, упростив имя и удалив [HtmlTargetElement (имя тега)]. Я собираюсь еще немного расследовать и попытаться выяснить, что на самом деле является причиной этого.   -  person R4nc1d    schedule 04.06.2017
comment
[HtmlTargetElement("tag-name")] должно быть reverse-text-div. Должно быть [HtmlTargetElement("reverse-text-div")]   -  person Sanket    schedule 04.06.2017
comment
Конечно, я понимаю, как я пропустил это   -  person R4nc1d    schedule 04.06.2017


Ответы (1)


Пункт 1: [HtmlTargetElement("tag-name")] должен совпадать с фактическим HTML-тегом, т. е. reverse-text-div. Должно быть [HtmlTargetElement("reverse-text-div")]

Пункт 2. Примените HtmlAttributeName к своим ресурсам, например. [HtmlAttributeName("all-caps")]

person Sanket    schedule 04.06.2017