从Web Api控制器返回XML

本文关键字:返回 XML 控制器 Api Web | 更新日期: 2023-09-27 18:05:02

如何从web api控制器指定返回xml ?在一个浏览器中数据以XML格式打开,在另一个浏览器中以JSON格式打开。

编辑

下面是我的动作:

    [HttpGet]
    public IEnumerable<MagazineMeta> GetLastUploadPdfMeta(int count)
    {
       List<MagazineMeta> metas = _metaRepository
                 .GetAll()
                 .OrderBy(e => e.TimeAdd)
                 .Take(count)
                 .ToList();
       return metas;
    }

从Web Api控制器返回XML

将这两行添加到Global.asax.cs中的Application_Start末尾:

GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.XmlMediaTypeFormatter());
编辑:

正如@YishaiGalatzer所指出的,这是相当快的&肮脏的解决方案,以实现最初提出的问题。要获得所需的响应格式,请在请求中包含适当的Accept标头(在此问题的上下文中为"application/xml")

要使响应序列化,还需要一行

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;

对于其他想要强制使用json的人,调用这个:

GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());