我使用的是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相关问答推荐

如何使用 Get-Process powershell 命令通过端口号获取进程的 ID

HttpRuntime.Cache[] 与 Application[]

如何在 ASP.NET 中设置自动实现属性的默认值

ASP MVC 授权除少数之外的所有操作

某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?

ASP.net 页面在导入语句上出现错误,但我确实有参考?

用于链接字符串中的 url 的 C# 代码

如何更改 .ASPX 自动格式化设置 (Visual Studio)

相当于服务器端的 ASP.NET 包括

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

通过 jQuery 调用 ASP.NET 服务器端方法

Razor 主机工厂错误

使用 JObject 所需的库名称是什么?

HttpContext.Current 在 MVC 4 项目中未解决

*.csproj 中的 usevshostingprocess 是什么?

如何保护存储在 web.config 中的密码?

如何进入 IIS 管理器?

验证请求事件

从物理路径获取相对虚拟路径

ASP.NET 自定义控件 - 未知的服务器标记