如何从控制器操作返回XML?即使我添加标头Accept: application/xml
,它也会返回一个JSON对象。
MVC 5中的WebApi控制器支持此功能。我需要做些什么才能使它在MVC 6中运行?
答案 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
。