之前做项目的时候,只知道MVC页面间传值有三种方式,分别为:ViewBag、ViewData、TempData,也知道如何使用它,但是并不知道三者之前的区别,这里强调一点,TempData可以用于Action与Action之间的传值,而ViewBag和ViewData只适用于Controller到View(即:Action)的传值。
以下将详细介绍三种传值方式。
一、Controller-->View
在action中我们将字符串保存在ViewData或ViewBag 中,值得注意的是:ViewData只对当前Action有效,ViewBag在Asp.Net 3.0以上才可以使用
控制器中代码:
- public ActionResult(string Type)
- {
- ViewData["str1"]= "这是一个字符串";
- ViewBag.str2="这是另外一个字符串";
- return View();
- }</span>
- <div>
- <h1>@ViewData["str1"]</h1>
- <h1>@ViewBag.str2</h1>
- </div>
二、Action-->Action
获取要传递到视图的临时数据.使用时,需要注意TempData的生命周期,只在第一次请求Action时临时数据存在,之后自动变为NULL,使用TempData和使用ViewData方法是一样的,不同的是它可用于在不同的Action之间传值。- public class MVCController : Controller
- {
- public ActionResult Index1()
- {
- TempData["name"] = "韦文文";
- return View();
- }
- public ActionResult Index2()
- {
- string strName = TempData["name"].ToString()
- return View();
- }
- }