asp.net core2 mvc 基础教程--Controller 控制器 内容协商
Controller 用于处理浏览器请求。它从 Model 获得数据并调用返回响应的 View。
Controller 父类:提供很多上下文相关信息及封装方法
this.File() 返回文件
当 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); }
一般直接用IActionResult就可以了
- 使用 sting,int 等作为返回值时,会立即返回
- 使用 IActionResult 时不会立即返回值,只会决定返回什么值,具体的返回值操作由 MVC 框架来做
public IActionResult Index() { return Content("Hello from HomeController"); }
返回json
public IActionResult Test() { var tst = new TcModel() { Name="我爱的"}; return new JsonResult(tst); }
public IActionResult TestOk() { var tst = new TcModel() { Name="我爱的"}; return OK(tst); }
更多的用法请看https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/actions?view=aspnetcore-3.1