gpt4 book ai didi

razor - 从另一个 TagHelper 调用 TagHelper?

转载 作者:行者123 更新时间:2023-12-04 15:32:57 25 4
gpt4 key购买 nike

有没有办法让 TagHelper 渲染另一个 TagHelper?

示例标签助手;

public class OuterTagHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "";
output.Content.SetContent("Hello <inner></inner>");
}
}

public class InnerTagHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "";
output.Content.SetContent("World!");
}
}

示例 View ;
<outer></outer>

预期结果;
Hello World!

我知道我可能应该使用 ViewComponent 来代替,但是完全有可能实现上面介绍的预期行为吗?

最佳答案

如果您需要使用一些现有的标签助手类型功能,那么您可以从 IHtmlGenerator 访问它。这无助于访问自定义标签助手功能,但如果您只需要标签等现有内容的功能,输入那么这将起作用

[HtmlTargetElement("input", Attributes = nameof(Wrap) + ", asp-for")]
[HtmlTargetElement("select", Attributes = nameof(Wrap) + ", asp-for")]
public class FormGroupWrapperTagHelper : TagHelper
{
public FormGroupWrapperTagHelper(IHtmlGenerator generator)
{
Generator = generator;
}

[HtmlAttributeNotBound]
[ViewContext]
public ViewContext ViewContext { get; set; }

protected IHtmlGenerator Generator { get; }

public ModelExpression AspFor { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var generateValidationMessage = Generator.GenerateValidationMessage(ViewContext,
AspFor.Name,
message: null,
tag: null,
htmlAttributes: null);
.....
}

关于razor - 从另一个 TagHelper 调用 TagHelper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com