MVC模式从Controller返回内容协商格式(Json或者Xml)

WebAPI默认的返回格式Json,但是MVC是View,如果在MVC的控制器中,想要返回Json格式该怎么操作呢

在MVC的控制器中返回json数据只需要然会JsonResult而不是ActionResult

public JsonResult Index()
{
var student = new Student()
{
Id = 1,
Email = "wujunchengman@163.com",
Major = "计算机",
Name = "吴俊城"
};
return Json(student);
}

这时候请求其地址就会返回json数据,但是有时候我们希望这个请求可以进行内容协商,即由http请求头的Accept来决定,如果是application/json则返回json数据,如果是application/xml则返回xml数据,面对这种需求,可以使用ObjectResult

public ObjectResult Index()
{
var student = new Student()
{
Id = 1,
Email = "wujunchengman@163.com",
Major = "计算机",
Name = "吴俊城"
};
return new ObjectResult(student);
}

使用ObjectResult在返回数据时会根据http请求头的设置选用对应的格式化器,这样只要设置了格式对应的格式化器,就可以自动返回对应格式

asp.net core默认只包含了json的格式化器,如果需要使用xml,需要在controller后面添加.AddXmlDataContractSerializerFormatters()

启用XML格式数据支持

为不支持的数据格式请求返回406错误码

上一篇:Quartz 2.2.x CronTrigger Tutorial


下一篇:类中成员函数与数据成员private/pubic/protected