我有一個值,我想在單個請求期間成爲vaild。我沒有使用會話,因爲這會使整個導航會話的值爲全局值。ASP.net MVC - 請求範圍的全局變量
所以我把thie值放在一個類的靜態字段中。太好了,但後來我發現這些領域更加全球化,也就是說,他們爲整個應用程序保留着!這意味着導航會話之間可能存在隨機交互。
所以現在的問題是:是否有一個安全的地方,我可以把一個全局變量,完成請求復位後
- 全球各地的請求其它的請求,或者是相同用戶的或由其他用戶
由於 真知晶球
編輯 我會詳細說明。我在母版頁中有一段代碼,在某些情況下我需要隱藏這些代碼,但我只能在控制器中知道這些代碼。我想到了在控制器中,然後將通過該母版頁查詢設置一個靜態變量,但現在我看到有可能是一個更好的辦法...
如果在請求生命週期中調用RedirectToAction,則'ViewData'和'HttpContext.Items'將被清除。在這種情況下,爲重定向請求保留的唯一選項是「TempData」。完成後,您只需要移除放在那裏的物品。 – 2015-04-30 17:44:32
從那時開始'TempData'的工作方式發生了變化,現在'TempData'一直持續到它再次被讀取。所以使用'TempData'可能會導致一些奇怪的事情發生。 'ViewData'(和'ViewBag')不適用於將數據從子動作傳遞給父類(我認爲即使是部分視圖 - >父視圖),所以使用'Context.Items'是3中最好的。 – jahu 2015-09-17 08:37:38