2013-10-09 68 views

回答

1

有控制ViewDataTempData持續時間沒有直接的方法。

ViewData在每次請求後被清除。

TempData在會話期間保留 - 因此,如果您增加了會話持續時間,則可以延長此數據的可用時間。

//擴展的答案 看來您正在嘗試使用TempData來存儲或保留信息。雖然TempData只要會話存在;它會在下一個請求中被默認擦除。可以覆蓋這個功能併發揚TempData,但這不是你應該做的。

如果您需要爲用戶保留數據;那麼你應該真的使用Session對象。

這是相當簡單地用作如下

string somethingToStore = "This value is to be stored in session"; 

// Store value to session; it will now persist for the duration of the session 
Session["SomeKey"] = somethingToStore; 

// To access the stored value 
string somethingVal = Session["SomeKey"] as string; 
+0

<的sessionState模式= 「是InProc」 超時= 「2」/> 這是正確的方法是什麼? –

+0

@AndasHilloans我可以問爲什麼你需要增加超時? 'ViewData'是一種將數據從控制器傳遞到視圖的手段。 'TempData'是保留回傳或重定向請求數據的手段。如果您需要更長時間保留數據,請分配給會話甚至數據庫。 – Kami

+0

@AndasHilloans是的,這個值會改變會話的長度。我相信這是默認的20分鐘。 – Kami