我创建了一个标签帮助程序,它读取包含元标签的 txt 文件并将内容写入页面。
但Process执行后,原来的标签并没有改变。
我想用txt文件的内容完全替换原来的标签。
标签助手
[HtmlTargetElement("LC_meta")]
public class MetaTagHelper : TagHelper
{
private IHostingEnvironment _env;
[HtmlAttributeName("filename")]
public string Filename { get; set; } = "default.txt";
public MetaTagHelper(IHostingEnvironment env)
{
_env = env;
}
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.Content.SetContent(System.IO.File.ReadAllText(System.IO.Path.Combine(_env.WebRootPath, "META", this.Filename)));
}
}
这是原始标签的:
<LC_meta />
<LC_meta filename="sample.txt" />
我有点卡住了,非常感谢!
如果你想省略标签,只需将标签名设置为 NULL 并写入文本:
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = null;
output.TagMode = TagMode.StartTagAndEndTag;
output.PostContent.SetContent("<h1>this gets HTML encoded<h1>");
output.PostContent.SetHtmlContent("<h1>Hello World</h1>");
}
或者,如果您想更改标记名称,请将标记名称设置为其他名称:
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "pre";
output.TagMode = TagMode.StartTagAndEndTag;
output.PostContent.SetContent("<h1>this gets HTML encoded<h1>");
output.PostContent.SetHtmlContent("<h1>Hello World</h1>");
}
另外,请确保您的 cshtml 文件包含
@addTagHelper *, ASSEMBLY_NAME_OF_CLASS_WITH_TAGHELPER
在开始时(布局之前),例如
@addTagHelper *, BlueMine
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)