我'找一個方法來獲得訪問權限,並設置TempData
在GLOBAL.ASAX
訪問到TempData的從Global.asax中
我想這樣的,但對TempData的仍然得到錯誤。
HttpContext.Current.TempData["Passed"] = "1";
我'找一個方法來獲得訪問權限,並設置TempData
在GLOBAL.ASAX
訪問到TempData的從Global.asax中
我想這樣的,但對TempData的仍然得到錯誤。
HttpContext.Current.TempData["Passed"] = "1";
TempData
是System.Web.Mvc.ControllerBase
類的屬性。由於您不在控制器中,因此無法訪問。我非常懷疑你可以輕鬆搞定它,因爲整個鏈條是由MVC框架構建的。
由於TempData[]
支持Session
(即SessionStateTempDataProvider
),您應該可以將值插入到會話中並將其取出。這確實依賴於閱讀源代碼(找到使用的密鑰),並且肯定不支持。
var dataKey = "__ControllerTempData";
var dataDict = HttpContext.Current.Session[dataKey] as IDictionary<string,object>;
if (dataDict == null) {
/* what do you want to do? add a new IDict<> and put in session? */
} else {
dataDict["Passed"] = 1;
HttpContext.Current.Session[dataKey] = dataDict;
}
警告,未經測試的代碼!您將需要調試。
正如其他人所說,這樣做的原因是什麼?你想達到什麼目的?這可能是一個更好的方法來做到這一點。
嗨,謝謝你的明確迴應。 但是,錯誤:名稱'currentTemp'在當前上下文中不存在。 –
對不起,忘了更改一個位置。我希望你能看到並解決問題。如果你想做一些奇怪的事情,你應該能夠調試基礎知識。更新。 –
經過測試。這從Application_AcquireRequestState工作(在BeginRequest中:Session始終爲空) –
那顯然不工作,因爲HttpContext
沒有叫TempData
任何財產。
根據要實現的,例如使用HttpContext.Current.Cache
或HttpContext.Current.Session
什麼的......
你爲什麼要這麼做?聽起來不對。 – torm
你想達到什麼目的? – christiandev
我需要一個真正的臨時載體,以首頁加載。我需要在global.asax開始的會話中使用它,並給予用戶特別注意。等等。 –