我正在使用ASP.NET5。我需要将IHtmlContent转换为String
IIHtmlContentASP.NET 5 Microsoft.AspNet.Html.Abstractions命名空间的一部分,并且是TagBuilder实现的接口(interface)

简化我有以下方法

public static IHtmlContent GetContent()
{
    return new HtmlString("<tag>blah</tag>");
}

当我引用它
string output = GetContent().ToString();

我得到GetContent()的以下输出
"Microsoft.AspNet.Mvc.Rendering.TagBuilder"

并不是
<tag>blah</tag>

我想要的

我也尝试过使用StringBuilder
StringBuilder html = new StringBuilder();
html.Append(GetContent());

但它还会附加相同的 namespace ,而不是字符串值

我试图将其转换到TagBuilder
TagBuilder content = (TagBuilder)GetContent();

但是TagBuilder没有转换为字符串的方法

如何将IHtmlContent或TagBuilder转换为字符串?

最佳答案

如果您需要做的只是将内容输出为字符串,只需添加此方法并将IHtmlContent对象作为参数传递即可获得字符串输出:

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

10-06 13:29