WebApi强制操作返回xml

我有这个动作:

public IHttpActionResult SearchFor(int aboItemType, DTO.FilterColumns filter) { //Do stuff... return Ok(ds); } 

我的客户做了:

 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); var response = client.PostAsJsonAsync(myurl).Result; if (response.IsSuccessStatusCode) { var results = HttpUtility.HtmlDecode(response.Content.ReadAsStringAsync().Result); } 

上述场景完美无缺。 但是,如果我对Accept行进行注释,则该操作将以json格式返回数据集。

我想强制这一个特定的操作总是在xml中发送结果。 这可能吗? 也许有一个属性?

我使用了Сonfiguration.Formatters.XmlFormatter

 public IHttpActionResult Get() { ... return Content(HttpStatusCode.OK, Model, Configuration.Formatters.XmlFormatter); } 

你也可以这样做(如果你必须传递一些http标头值):

 public IHttpActionResult Get() { var result = Request.CreateResponse(HttpStatusCode.OK, model, Configuration.Formatters.XmlFormatter); result.Headers.Add("Access-Control-Allow-Origin", "*"); return ResponseMessage(result); }