how to get the html for a tag helper in code

29 views Asked by At

I have some tag helpers I need to "render" in code, meaning I'm looking to get the html that would be used in a view.

How can I get a HTML string representation of a tag helper?

Here's just a tag helper as an example:

[HtmlTargetElement("bars", TagStructure = TagStructure.NormalOrSelfClosing)]
public class BarsMenuTagHelper : TagHelperCustom, ITagHelperCustom
{
    public BarsMenuTagHelper(IWebHostEnvironment environment, ITagHelperRepo helperRepo, IHtmlHelper htmlHelper) : base(environment, helperRepo, htmlHelper)
    { }

    public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
    {
        await base.PreProcessAsync(context, output);

        TagHelperContent inner = await output.GetChildContentAsync();
        TagBuilderCustom burger = new TagBuilderCustom("i");

        burger.InnerHtml.SetHtmlContent(inner.ToHtmlString());
        burger.AddAttribute("id", "creatorBarsMenu");
        burger.AddCssClassRange("creator-bars-icon", $"size-{this.Size.ToLower()}");

        AddContent(burger);

        await base.ProcessAsync();
    }

    [HtmlAttributeName("size")]
    public CommonSizes Size { get; set; } = CommonSizes.MD;
}
0

There are 0 answers