如何从ASP.NET 5 MVC 6控制器操作返回XML

时间:2015-09-02 13:24:05

标签: asp.net asp.net-mvc

如何从控制器操作返回XML?即使我添加标头Accept: application/xml,它也会返回一个JSON对象。

MVC 5中的WebApi控制器支持此功能。我需要做些什么才能使它在MVC 6中运行?

1 个答案:

答案 0 :(得分:4)

Microsoft删除了XML格式化程序,因此默认情况下ASP.NET MVC 6仅返回JSON。如果您想再次添加对XML的支持,请在AddXmlSerializerFormatters方法services.AddMvc()之后致电Startup.ConfigureServices()

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc()
        .AddXmlSerializerFormatters();
}

要使用它,您必须添加"Microsoft.AspNet.Mvc.Formatters.Xml": "6.0.0-rc1-final"作为依赖项(位于project.json下的dependencies)。

执行相同操作的稍微繁琐的方法是将Xml格式化程序直接添加到OutputFormatters集合中:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(options =>
    {
        options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
    });
}

XmlSerializerOutputFormatter位于名称空间Microsoft.AspNet.Mvc.Formatters