添加 类 到标记助手 html 元素

Add classes to tag helpers html elements

第一次深入研究标签助手,但我无法从教程中理解我应该如何为每个元素定义 类?

    [HtmlTargetElement("card")]
public class CardTagHelper : TagHelper
{
    public string Title { get; set; }
    public string Icon { get; set; }
    public override void Process(TagHelperContext context, TagHelperOutput output)
    {

        output.TagName = "CardTagHelper";
        output.TagMode = TagMode.StartTagAndEndTag;

        var sb = new StringBuilder();
        sb.AppendFormat($@"
                    <div class='card custom-card'>
                        <div class='card-header'>
                            <div class='card-title'>
                                <i class='{Icon}'></i>
                                {Title}
                            </div>
                        </div>
                        <div class='card-body'>

                        </div>
                        <div class='card-footer'>
                        </div>
                    </div>");

        output.PreContent.SetHtmlContent(sb.ToString());

        output.Attributes.SetAttribute("class", "card-body");
    }
}

none 这些作品,它仍然呈现在页面上

编辑

我想要的是内容将呈现为这样的东西

<card title="title" icon="icon">
 // content
</card>

我不确定这是不是这样做的方式,或者我必须为卡片头部主体和页脚创建标签助手

喜欢

<card>
    <card-header>
    </card-header>
    <card-body>
    </card-body>
    <card-footer>
    </card-footer>
</card>

在查看导入时我注入了助手

@addTagHelper *, CardTagHelper

您遇到的问题在这里:

@addTagHelper *, CardTagHelper

此指令尝试注册在不存在的 CardTagHelper 程序集中找到的所有 tag-helpers。您的 tag-helper 没有被发现,因此也没有被 运行 找到,而您添加到 .cshtml 文件中的 HTML 完全没有受到影响。

您需要使用包含的程序集的名称CardTagHelper:

@addTagHelper *, YourFullAssemblyName