環境:
Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0
一. Asp.Net Mvc中的TempData
在Asp.Net Mvc框架的ControllerBase中存在一個叫做TempData的Property,它的類型為 TempDataDictionary,顧名思義是一個字典類。TempData在Asp.Net Mvc中的作用是:可用於在Action執 行過程之間傳值。簡單的說,你可以在執行某個Action的時候,將數據存放在TempData中,那麼在下一次 Action執行過程中可以使用TempData中的數據。
如:
上面的代碼中,Index()給TempData添加了一個鍵值對,假設我們先請求Index這個Action,接著請求 Index2這個Action,那麼在Index2中,我們便可以得到之前添加到TempData的鍵值對。有趣的是,這時如 果再次請求Index2,那麼從TempData中讀到的MyName的值會是null。於是,我們需要了解TempData的生命 周期。
二. TempData的生命周期
我們知道Http是無狀態的,為什麼TempData可以在兩次請求之前傳遞數據呢?很明顯,這個數據必定 是已某種形式保存了。查看Controller類的源代碼,很容易的找到了我們想要的東西: