我有这个动作:
public IHttpActionResult SearchFor(int aboItemType, DTO.FilterColumns filter)
{
//Do stuff...
return Ok<DataSet>(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。这可能吗?也许有一个属性?
答案 0 :(得分:25)
我使用了Сonfiguration.Formatters.XmlFormatter
public IHttpActionResult Get()
{
...
return Content(HttpStatusCode.OK, Model, Configuration.Formatters.XmlFormatter);
}
答案 1 :(得分:0)
你也可以这样做(如果你必须传递一些http标头值):
public IHttpActionResult Get()
{
var result = Request.CreateResponse(HttpStatusCode.OK,
model,
Configuration.Formatters.XmlFormatter);
result.Headers.Add("Access-Control-Allow-Origin", "*");
return ResponseMessage(result);
}