Web Api 2 下载 XML 作为文件,而不仅仅是浏览器中的内容
Web Api 2 Download XML as File not just content in browser
我目前有以下内容可以下载 xml 作为屏幕上的内容
public IHttpActionResult GetAllMemberParty()
{
return Content(HttpStatusCode.OK, this.addressTypeRepository.GetAll(), Configuration.Formatters.XmlFormatter);
}
是否可以添加一个快速的一行以将此下载为文件?而不是编写我自己的 IHttpActionResult 实现?
谢谢
下面将其作为文件下载但没有任何扩展名。我希望它有一个扩展名,但创建我自己的 return 文件的 http 响应似乎有点麻烦?
public IHttpActionResult GetAll()
{
return Content(HttpStatusCode.OK, this.repository.GetAll(), Configuration.Formatters.JsonFormatter, new MediaTypeHeaderValue("application/octet-stream"));
}
我找到了解决这个问题的更好方法。 ResponseMessage 方法是 API 控制器的一部分。这实现了 IHttpActionResult,因此您可以执行以下操作:
HttpResponseMessage responseMsg = Request.CreateResponse(HttpStatusCode.OK, returnList, Configuration.Formatters.JsonFormatter);
responseMsg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
responseMsg.Content.Headers.ContentDisposition.FileName = "Address.json";
return ResponseMessage(responseMsg);
您当然可以只使用 return HTTPResponseMessage!
我目前有以下内容可以下载 xml 作为屏幕上的内容
public IHttpActionResult GetAllMemberParty()
{
return Content(HttpStatusCode.OK, this.addressTypeRepository.GetAll(), Configuration.Formatters.XmlFormatter);
}
是否可以添加一个快速的一行以将此下载为文件?而不是编写我自己的 IHttpActionResult 实现?
谢谢
下面将其作为文件下载但没有任何扩展名。我希望它有一个扩展名,但创建我自己的 return 文件的 http 响应似乎有点麻烦?
public IHttpActionResult GetAll()
{
return Content(HttpStatusCode.OK, this.repository.GetAll(), Configuration.Formatters.JsonFormatter, new MediaTypeHeaderValue("application/octet-stream"));
}
我找到了解决这个问题的更好方法。 ResponseMessage 方法是 API 控制器的一部分。这实现了 IHttpActionResult,因此您可以执行以下操作:
HttpResponseMessage responseMsg = Request.CreateResponse(HttpStatusCode.OK, returnList, Configuration.Formatters.JsonFormatter);
responseMsg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
responseMsg.Content.Headers.ContentDisposition.FileName = "Address.json";
return ResponseMessage(responseMsg);
您当然可以只使用 return HTTPResponseMessage!