我使用的是ASP.NET 5.我需要将IHtmlContent转换为字符串

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>

这是我想要的

我还try 使用StringBuilder

StringBuilder html = new StringBuilder();
html.Append(GetContent());

but it also appends the same namespace 而不是 the string value

我试着把它交给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();
    } 
}     

Asp.net相关问答推荐

.Net Framework:w3wp.exe 中的异常

IIS 中 ASP.net 应用程序的单独应用程序池

如何为发布模式设置调试错误

使用实体框架从存储过程中获取数据

如何在页面的基类中执行 Page_Load()?

如何检测 ASP.net 应用程序中的 SqlServer 连接泄漏?

如何在 ASP.NET Web API 中使用非线程安全的 async/await API 和模式?

.NET 核心 IdentityUser 模型中规范化邮箱和用户名的用途是什么?

如何从 URI 中删除 PROTOCOL

Web Api 参数始终为空

嵌套剃刀模板中的@RenderSection

如何获取 ASP.NET 应用程序的完整虚拟路径

如何在 ASP.NET 站点中添加 favicon.ico

Owin.IAppBuilder不包含MapSignalR的定义

MVC 模型布尔显示是或否

Request.Cookies 和 Response.Cookies 之间的区别

验证请求事件

如何告诉 RadioButtonList 不生成表格

如何加密 web.config 中的一项

如何识别字符串是否包含 unicode 字符?