控制器
控制器:是一个类,但必须以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 数据能访问一次,