MVC 传值
1、ViewBag
Controller:ViewBag.Message = "Hello, Word";
View:@ViewBag.Message
注:ViewBag的类型是动态的,不确定的,直接就可以使用,它的传值范围是:controller向view传值,view自己和自己传值。
2、ViewData
Controller:ViewData["message""] = "Hello, Word";
View: string message = ViewData["message"] as string;
@message
注:ViewData的类型是很明确的,使用的时候经常需要强制类型转换,它的传值范围是:controller向view传值,view自己和自己传值。
3、TempData
Controller: TempData["message"] = "Hello, Word";
Controller:if ("Hello, Word" == TempData["message"] as string) { TempData["message"] = "Hello!"; }
View: string message = TempData["message"] as string;
@message
注:TempData存在的目的就是为了防止redirect时候数据的丢失(ViewData、ViewBag在跳转后就会变成null,但是TempData不会),它的传值范围是当前controller和跳转后的controller之间。
4、普通页面传递model
Controller:StarModel p = new StarModel (); p.Name = "Suk"; return View(p);
View:<%: ((StarModel )Model).Name %>
5、向强类型试图传递model
a:(WebForm 的实现)
Controller:StarModel p = new StarModel (); p.Name = "Suk"; return View(p);
View: <%@ Page Inherits="System.Web.Mvc.ViewPage<StarModel >" %>
<%: Model.Name %>
b:(Razor 的实现)
Controller:StarModel p = new StarModel (); p.Name = "Suk"; return View(p);
View:@model MOTest.Models.StarModel
@Model.Name
6、ViewModel
Controller: var StarModelTest = new StarModel (p); return View(StarModelTest );
View: @model MOTest.Models.StarModelTest
@Model.Name
7、RedirectToAction
a:(传递实体类)
RedirectToAction(控制器,控制器方法,实体类)
b:(传递字符串)
RedirectToAction(控制器,控制器方法,new{name=value,....})
最新文章
- 几个ES6新特性
- JavaScript方法
- HAproxy配置文件操作
- ViewPager循环显示
- ES6笔记(2)-- let的块级作用域
- WPF学习之路(十)实例:用户注册
- PHP Closure类Bind与BindTo方法
- Ciel and Robot
- Canvas与Image互转
- [CF 471C] MUH and House of Cards
- swift UITextField光标聚焦以及光标颜色修改
- linux基础命令整理(一)
- UVA - 10285 Longest Run on a Snowboard (线性DP)
- redis缓存雪崩、缓存穿透、数据库和redis数据一致性
- C#面向对象 类的封装
- 经验分享 | 如何拿到自己满意的offer?
- Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令
- ASP.NET MVC 使 Controller 的 Action 只接受 Ajax 请求。
- 【剑指offer】11--旋转数组的最小数字(二分查找)
- android studio安卓工作室 工具栏