在C#中将IHtmlContent / TagBuilder转换为字符串

你走

我正在使用ASP.NET5。我需要将IHtmlContent转换为String

IIHtmlContentASP.NET 5 Microsoft.AspNet.Html.Abstractions命名空间的一部分,TagBuilder实现的接口

简化我有以下方法

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

但它还会附加相同的名称空间,而不是字符串值

我试图将其投射到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();
    } 
}     

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章