Net Core TagHelpers: Атрибуты принимают только определенные параметры - PullRequest
0 голосов
/ 01 июля 2019

Я хотел бы создать Custom Tag Helper, который принимает определенные принимает только определенные значения для типа кнопки. ButtonType может быть только «Radio» или «Checkbox» и т. Д. При попытке добавить enum выдает ошибку ниже. Есть ли возможность провести это? Хотите воздерживаться от использования строк условия оператора if, если это не требуется.

    [HtmlTargetElement("TagHelperTest")]
    public class ABCDTest:TagHelper
    {
        [HtmlAttributeName("HeaderTitle")]
        public string HeaderTitle { get; set; }

        [HtmlAttributeName("TextDescription")]
        public string TextDescription { get; set; }

        [HtmlAttributeName("ButtonTypetests")]
        public enum ButtonType { get; set; }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            string ReturnText = "Title: " + HeaderTitle + 
                                "Description" + HeaderDescription + 
                                "Button Type" + ButtonType;

        output.Content.SetHtmlContent(ReturnText);
        }

Тест:

    [HtmlAttributeName("ButtonType")]
    public enum ButtonType { get; set; }

Ошибка:

Attribute 'HtmlAttributeName' is not valid on this declaration type. It is only valid on 'property, indexer' declarations.

Просмотр .cshtml Идеальная цель

<ABCDTest
    HeaderTitle = "Test"
    TextDescription= "Test description"
    ButtonType = "Radio">
</ABCDTest>
...