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: FiddlerHost: localhost:3290Accept: application/json
返回 JSON 数据:
设置 Accept 为 XML:
User-Agent: FiddlerHost: localhost:3290Accept: application/xml
返回 XML 数据:
