Controller 用于处理浏览器请求。它从 Model 获得数据并调用返回响应的 View。
内容协商
当 Action 的返回值为 JsonResult 时,不支持内容协商,只能返回 JSON 格式数据:
public JsonResult DetailsInJson()
{
var model = _studentRepository.GetStudent(1);
return Json(model);
}
当返回值为 ObjectResult 时,支持内容协商,即可以根据请求时 HTTP Header 中设置的 Accept 属性来返回数据:
public ObjectResult DetailsInObject()
{
var model = _studentRepository.GetStudent(1);
return new ObjectResult(model);
}
用 Fidder 模拟 HTTP 请求进行演示
设置 Accept 为 JSON:
User-Agent: Fiddler
Host: localhost:3290
Accept: application/json
返回 JSON 数据:
设置 Accept 为 XML:
User-Agent: Fiddler
Host: localhost:3290
Accept: application/xml
返回 XML 数据: