Net Core:如何在 C# 中将 TagBuilder 转换为字符串?

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

Net Core 中是否有原生的方法将 Tagbuilder 转换为 String?这仅适用于 ASP Net 5。

将 TagBuilder 的值转换为字符串

我认为微软在 Net Core 中对此有替代功能

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

相同的 WriteTo 方法在 aspnetcore 中可用。

您应该能够继续受益于创建相同的 GetString 方法,因为 TagBuilder 继承自 IHtmlContent

例如:

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();
        }
    }
}

然后从你的代码中,你可以调用

TagBuilder myTag = // ...
string tagAsText = myTag.GetString();

这个解决方案对我有用!

        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());