我正在寻找一种获取访问权限的方法,并在TempData
GLOBAL.ASAX
我试过这样但仍然在TempData上获得错误。
HttpContext.Current.TempData["Passed"] = "1";
答案 0 :(得分:3)
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;
}
警告,未经测试的代码!您需要调试。
正如其他人所说,这样做的原因是什么?你想达到什么目的?这可能是一个更好的方法。
答案 1 :(得分:1)
这显然不起作用,因为HttpContext
没有任何名为TempData
的属性。
根据您要实现的目标,例如使用HttpContext.Current.Cache
或HttpContext.Current.Session
......