2017-04-05 55 views
0

在我的應用程序中,用戶將在登錄後登錄,我需要以某種方式跟蹤他們剛剛創建的會話。登錄後,他們有兩種選擇,進入大樓,完成登錄過程或檢查設備的會話。我需要在應用程序中跟蹤該會話以檢查項目。但是我不想在設備視圖之前通過每個視圖的當前會話模型?目前我使用的是TempData,但是我覺得在我讀取某個地方時正在玩火,我相信兩次重定向後會清除臨時數據?是否有永久臨時數據或其他我可以使用的更安全的數據?謝謝您的幫助。如何在MVC應用程序中傳遞和存儲模型而不通過每個視圖傳遞模型?

回答

0

您可以將此數據存儲爲會話狀態。無需將其明確傳遞給控制器​​,它是可以在任何控制器操作內部訪問的HttpContext的一部分。

MyUserContextData current = null; 

// retrieve 
if (HttpContext.Current != null && HttpContext.Current.Session != null) { 
    current = HttpContext.Current.Session["UserContextData"] as MyUserContextData; 
} 

// store 
if (HttpContext.Current != null && HttpContext.Current.Session != null) { 
    HttpContext.Current.Session["UserContextData"] = current; 
} 

ASP.NET Session State Overview

注意,使用會話狀態可能會阻止併發請求。

ASP.NET Concurrent Ajax Requests and Session State Blocking

+0

完善這部作品驚人的感謝! – RainMan