从Web Api Controller返回XML

时间:2013-03-21 14:11:44

标签: c# xml asp.net-mvc asp.net-web-api

如何从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;
    }

3 个答案:

答案 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());