第一次学习标签助手,但是我从教程中无法理解我应该如何为每个元素定义类?
[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");
}
}
这些工作都没有,它仍然在页面上呈现
编辑
我想要的是将内容呈现为这样的内容
<card title="title" icon="icon">
// content
</card>
我不确定这是否是这样做的方式,或者我是否必须为卡头主体和页脚创建标签帮助器
喜欢
<card>
<card-header>
</card-header>
<card-body>
</card-body>
<card-footer>
</card-footer>
</card>
在视图导入中,我向助手注入了
@addTagHelper *, CardTagHelper
答案 0 :(得分:1)
您遇到的问题在这里:
@addTagHelper *, CardTagHelper
此伪指令尝试注册CardTagHelper
程序集中不存在的所有标记帮助器。找不到您的标记帮助程序,因此也无法运行它,从而使您添加到.cshtml文件中的HTML完全不变。
您需要使用包含的程序集的名称 CardTagHelper
:
@addTagHelper *, YourFullAssemblyName