Web Api 2将XML下载为文件,而不仅仅是浏览器中的内容



我目前有以下内容,可以在屏幕上下载xml作为内容

 public IHttpActionResult GetAllMemberParty()
    {
        return Content(HttpStatusCode.OK, this.addressTypeRepository.GetAll(), Configuration.Formatters.XmlFormatter);
    }

是否可以添加一个快速的一行代码来将此下载作为文件?而不是编写我自己的IHttpActionResult实现?

感谢

以下内容使其作为文件下载,但没有任何扩展名。我更希望它有一个扩展名,但创建自己的返回文件的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);

你当然可以使用并返回HTTPResponseMessage!

相关内容

最新更新