Net Core: How to Convert TagBuilder to String in C#?

3.9k Views Asked by At

Is there a native way to convert Tagbuilder to String in Net Core? This only is for ASP Net 5. Convert IHtmlContent/TagBuilder to string in C#

Convert value of TagBuilder into a String

I think Microsoft had a replacement function for this in Net Core

public static string GetString(IHtmlContent content)
{
    using (var writer = new System.IO.StringWriter())
    {        
        content.WriteTo(writer, HtmlEncoder.Default);
        return writer.ToString();
    } 
}     
2

There are 2 best solutions below

3
marksfrancis On BEST ANSWER

The same WriteTo method is available in aspnetcore.

You should be able to continue to benefit from creating the same GetString method, as TagBuilder inherits from IHtmlContent.

For example:

public static class IHtmlContentExtensions
{
    public static string GetString(this Microsoft.AspNetCore.Html.IHtmlContent content)
    {
        using (var writer = new System.IO.StringWriter())
        {        
            content.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default);
            return writer.ToString();
        }
    }
}

Then from your code, you can just call

TagBuilder myTag = // ...
string tagAsText = myTag.GetString();
0
Georgesn On

This solution worked for me!

        StringBuilder result = new StringBuilder();
        for (int i = 1; i <= pagingInfo.TotalPages; i++)
        {
            TagBuilder tag = new TagBuilder("a");
            result.Append(GetString(tag));
        }

        return new HtmlString(result.ToString());