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!