如何从web api控制器指定return xml?在一个浏览器中,数据以XML格式打开,在另一个浏览器中以JSON格式打开。
修改
这是我的行动:
[HttpGet]
public IEnumerable<MagazineMeta> GetLastUploadPdfMeta(int count)
{
List<MagazineMeta> metas = _metaRepository
.GetAll()
.OrderBy(e => e.TimeAdd)
.Take(count)
.ToList();
return metas;
}
答案 0 :(得分:7)
将这两行添加到Global.asax.cs中的Application_Start的末尾:
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.XmlMediaTypeFormatter());
修改强> 正如@YishaiGalatzer指出的那样,这是相当快速的肮脏的解决方法,以实现最初提出的问题。要获得所需的响应格式,请在请求中包含相应的Accept标头(在此问题的上下文中,“application / xml”)
答案 1 :(得分:1)
要使响应序列化,您还需要一行
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;
答案 2 :(得分:0)
对于想要强制执行json的其他人,请调用:
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());