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,....})
相关文章
- python 在一个py文件中获取另一个py文件中的值(一个或多个)
- jquery获取radio的值
- js 怎样获取div 图片等的宽度,只要值,不要px
- WinpCap 使用线程发数,明明发了,返回值0是OK的啊,怎么抓包看不到,难道不支持多线程。。。
- python re match返回值_Python re正则表达式学习
- python值函数名的使用以及闭包,迭代器
- OpenCV类VideoCapture构造函数中参数apiPreference的可选值及意义
- php使用memcache与memcached扩展对key值的影响
- ASP.NET MVC5路由系统机制详细讲解
- eclipse搭建maven project的spring4 spring mvc mybatis