我正在寻找一种访问和设置TempData
的方法GLOBAL.ASAX
我试过这样,但在 TempData 上仍然出现错误。
HttpContext.Current.TempData["Passed"] = "1";
我正在寻找一种访问和设置TempData
的方法GLOBAL.ASAX
我试过这样,但在 TempData 上仍然出现错误。
HttpContext.Current.TempData["Passed"] = "1";
TempData
是System.Web.Mvc.ControllerBase
类的属性。由于您不在控制器中,因此无法访问它。我非常怀疑您是否可以轻松获得它,因为设置它的整个链是由 MVC 框架构建的。
由于TempData[]
由Session
(ie 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;
}
警告,未经测试的代码!您将需要调试。
正如其他人所说,这样做的原因是什么?你想达到什么目的?这可能是一种更好的方法。
那显然不起作用,因为HttpContext
没有任何名为TempData
.
取决于您想要实现、使用HttpContext.Current.Cache
或HttpContext.Current.Session
例如...