當前位置:成語大全網 - 新華字典 - tempdata和viewdata的區別

tempdata和viewdata的區別

雖然ViewData和TempData都可以傳遞弱類型數據,但是兩者的使用是有區別的:

ViewData的生命周期和View相同, 只對當前View有效.

TempData保存在Session中, Controller每次執行請求的時候會從Session中獲取TempData並刪除Session, 獲取完TempData數據後雖然保存在內部的字典對象中,但是TempData集合的每個條目訪問壹次後就從字典表中刪除. 也就是說TempData的數據至多只能經過壹次Controller傳遞.

為何TempData只能夠在Controll中傳遞壹次? 因為SessionStateTempDataProvider.LoadTempData方法(在TempDataDictionary.Load中調用)在從ControllerContext的Session中讀取了TempData數據後, 會清空Session: