gpt4 book ai didi

asp.net-mvc-4 - 如何为 Web API Controller 方法指定 ContentType

转载 作者:行者123 更新时间:2023-12-03 10:24:56 25 4
gpt4 key购买 nike

有一个 Request 对象,获取请求内容类型很容易。但是如何为响应指定内容类型呢?我的 Controller 看起来像这样(为简洁起见,删除了其他操作):

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 对象中?

最佳答案

您必须将该方法的返回类型更改为 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;
}

关于asp.net-mvc-4 - 如何为 Web API Controller 方法指定 ContentType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23381309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com