asp.net - 如何使用 ApiController 返回原始字符串?

标签 asp.net asp.net-mvc asp.net-mvc-4 asp.net-web-api

我有一个提供 XML/JSON 服务的 ApiController,但我希望我的操作之一返回纯 HTML。我尝试了以下方法,但它仍然返回 XML/JSON。

public string Get()
{
    return "<strong>test</strong>";
}

这就是上面的返回结果:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">&lt;strong&gt;test&lt;/strong&gt;</string>

有没有办法只返回纯的、未转义的文本,甚至不需要周围的 XML 标签(可能是不同的操作属性返回类型)?

最佳答案

您可以让 Web Api 操作返回一个 HttpResponseMessage,您可以完全控制其内容。在您的情况下,您可以使用 StringContent 并指定正确的内容类型:

public HttpResponseMessage Get()
{
    return new HttpResponseMessage()
    {
        Content = new StringContent(
            "<strong>test</strong>", 
            Encoding.UTF8, 
            "text/html"
        )
    };
}

public IHttpActionResult Get()
{
    return base.ResponseMessage(new HttpResponseMessage()
    {
        Content = new StringContent(
            "<strong>test</strong>", 
            Encoding.UTF8, 
            "text/html"
        )
    });
}

关于asp.net - 如何使用 ApiController 返回原始字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046417/

相关文章:

asp.net - 如何增加 IIS 进程优先级(对于 w3wp 和 iis apppool)?

c# - 面向 C# 开发人员的 VB.NET

Javascript click 事件不是第一次触发

c# - 我应该使用异常来处理用户输入验证吗?

asp.net-mvc - 如何使用editorfor隐藏主键输入字段

jquery - 在 MVC4 razor 中使用 "Remote"验证处理多个提交按钮

c# - 关于单元测试

ASP.NET 通用提供程序和 session 状态

javascript - 在 ajax 请求中发送带有 JSON 数据的文件

asp.net-mvc - 如何在 mvc 中保持 View 不受授权逻辑的影响?