如何为Web API控制器方法指定ContentType

彼得·沃恩

有一个Request对象,获取请求内容类型很容易。但是,如何为响应指定内容类型?我的控制器如下所示(为简洁起见,删除了其他操作):

public class AuditController : ApiController
{   
  // GET api/Audit/CSV
  [HttpGet, ActionName("CSV")]
  public string Csv(Guid sessionId, DateTime a, DateTime b, string predicate)
  {
    var result = new StringBuilder();
    //build a string
    return result.ToString();
  }
}

除内容类型错误外,此方法工作正常。我想这样做

Response.ContentType = "text/csv";

一项小小的研究表明,我们可以键入Action以返回HttpResponseMessage。所以我的方法的结尾看起来像这样:

  var response = new HttpResponseMessage() ;
  response.Headers.Add("ContentType","text/csv");
  response.Content = //not sure how to set this
  return response;

HttpContent上的文档很少,有人可以建议我如何将StringBuilder的内容转换为HttpContent对象吗?

haim770

您必须将方法的返回类型更改为HttpResponseMessage,然后使用Request.CreateResponse

// GET api/Audit/CSV
[HttpGet, ActionName("CSV")]
public HttpResponseMessage Csv(Guid sessionId, DateTime a, DateTime b, string predicate)
{
    var result = new StringBuilder();

    //build a string

    var res = Request.CreateResponse(HttpStatusCode.OK);
    res.Content = new StringContent(result.ToString(), Encoding.UTF8, "text/csv");

    return res;
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为代理控制器设置Web API路由?

来自分类Dev

如何为Web API控制器编写UnitTest

来自分类Dev

如何为多部分/表单数据设置Web API控制器

来自分类Dev

如何在API控制器中指定特定的URL?

来自分类Dev

如何在API控制器中指定特定的URL?

来自分类Dev

如何为 Core api 控制器测试自动 ModelState 的自定义属性方法验证?

来自分类Dev

Web API控制器,RESTful Web方法。(使用角度)

来自分类Dev

如何为POST方法设置WebAPI控制器

来自分类Dev

如何为 customBinding 指定 ContentType?

来自分类Dev

Breeze无法解决Web API控制器方法

来自分类Dev

无法获取Web API控制器方法的URL

来自分类Dev

Web API控制器无法识别新添加的方法

来自分类Dev

如何为Web API要求SSL

来自分类Dev

如何取消测试API控制器方法

来自分类Dev

如何从 codeigniter 控制器类调用 coinbase api 方法?

来自分类Dev

如何使用控制器的方法调用api

来自分类Dev

Web API访问控制器方法来自另一个控制器方法

来自分类Dev

如何在Web API控制器的Post方法中接收动态数据

来自分类Dev

如何确保线程安全的Web API基本控制器方法

来自分类Dev

如何知道将从Web API授权过滤器中调用哪种控制器方法

来自分类Dev

如何在.net MVC Web API控制器方法中设置内容范围标头?

来自分类Dev

如何在ASP.NET Web API异步控制器方法中返回对象列表

来自分类Dev

如何在.net MVC Web API控制器方法中设置内容范围标头?

来自分类Dev

如何在MVC中解析Web API控制器方法调用

来自分类Dev

如何设置Web API控制器以将请求路由到方法参数?

来自分类Dev

如何在Web API2控制器中放置多个GET方法?

来自分类Dev

在AngularJS 1.2中,如何为ng-include指定控制器?

来自分类Dev

在AngularJS 1.2中,如何为ng-include指定控制器?

来自分类Dev

如何指定我希望控制器的构造函数接收的类实例(使用Web API,DI和Castle Windsor时)?

Related 相关文章

  1. 1

    如何为代理控制器设置Web API路由?

  2. 2

    如何为Web API控制器编写UnitTest

  3. 3

    如何为多部分/表单数据设置Web API控制器

  4. 4

    如何在API控制器中指定特定的URL?

  5. 5

    如何在API控制器中指定特定的URL?

  6. 6

    如何为 Core api 控制器测试自动 ModelState 的自定义属性方法验证?

  7. 7

    Web API控制器,RESTful Web方法。(使用角度)

  8. 8

    如何为POST方法设置WebAPI控制器

  9. 9

    如何为 customBinding 指定 ContentType?

  10. 10

    Breeze无法解决Web API控制器方法

  11. 11

    无法获取Web API控制器方法的URL

  12. 12

    Web API控制器无法识别新添加的方法

  13. 13

    如何为Web API要求SSL

  14. 14

    如何取消测试API控制器方法

  15. 15

    如何从 codeigniter 控制器类调用 coinbase api 方法?

  16. 16

    如何使用控制器的方法调用api

  17. 17

    Web API访问控制器方法来自另一个控制器方法

  18. 18

    如何在Web API控制器的Post方法中接收动态数据

  19. 19

    如何确保线程安全的Web API基本控制器方法

  20. 20

    如何知道将从Web API授权过滤器中调用哪种控制器方法

  21. 21

    如何在.net MVC Web API控制器方法中设置内容范围标头?

  22. 22

    如何在ASP.NET Web API异步控制器方法中返回对象列表

  23. 23

    如何在.net MVC Web API控制器方法中设置内容范围标头?

  24. 24

    如何在MVC中解析Web API控制器方法调用

  25. 25

    如何设置Web API控制器以将请求路由到方法参数?

  26. 26

    如何在Web API2控制器中放置多个GET方法?

  27. 27

    在AngularJS 1.2中,如何为ng-include指定控制器?

  28. 28

    在AngularJS 1.2中,如何为ng-include指定控制器?

  29. 29

    如何指定我希望控制器的构造函数接收的类实例(使用Web API,DI和Castle Windsor时)?

热门标签

归档