控制器
控制器:是一个类,但必须以Controller 结尾【MVC的约定】
继承自Controller,
作用:决定如何调度资源【用什么数据,来显示 哪个视图】
动作 Action【 是控制器中的一个方法,必须是公共的】
控制器运行的过程
HTTP请求===> 指定的Controller ,ActionInvokerè 调用 那一个Action【方法】,
调用 Model Bindding ==>把 Action中的参数 ,作为依据,决定显示哪个View,以及如何渲染 视图
Action 的返回值 ActionResult
返回类型 |
方法 |
作用 |
ViewResult |
View() |
加载对应名称的视图 |
JsonResult |
Json() |
把数据转换成json |
ContentResult |
Content |
返回文本字符串 |
HttpNotFoundResult |
HttpNotFound() |
返回未找到 404 的状态 |
JavaScriptResult |
JavaScript() |
返回javascript 代码 |
PartialViewResult |
PartialView() |
返回部分视图 |
RedirectResult |
Redirect() |
跳转页面(符合路由规则) |
RedirectToRouteResult |
RedirectToAction() |
跳转到指定的 Action 上 |
FileResult |
File() |
返回文件 |
Controller 给视图传递数据
ViewBag
动态类型。添加任何属性
ViewBag 的使用
设置值: ViewBag.Key=值;
取值:obj = ViewBag.Key
ViewData
:是ControllerBase 中的属性,类型ViewDataDictionary 继承了IDictionary<string, object> 接口,使用时 可以 用 Key/Value
如何操作ViewData
设置值:ViewData[“Key”]=值;
获取值:object obj =ViewData[“Key”]
double pi = 3.14;
ViewData.Model = pi;
return View();
//等价于
//return View(pi);
TempData
TempData 数据能访问一次,