MVC3.0入门学习笔记-页面传值-TempData

Coordinator
Aug 24, 2011 at 9:16 AM

TempData[]是一个可以跨Action的传递,且只传递一次.

TempData保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除 Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从 ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。

   1.在HomeController.cs中创建字典:

    public ActionResult Index()
        {
            TempData["str"] = "TempData传递一次字符串";
            Response.Redirect("/home/about");//跳转到about页中
            return View();
        }

2.因为页面将跳转到about页,并希望该页接受到传值,所以定义应在About.cshtml中:

@TempData["strValue"];

我们已经可以看到我们传递的值了,但是刷新以后,将不会显示,因为该传值只能传递一次

分类: MVC3.0