我有一个控制器,我的所有控制器都继承自它,我需要为每个控制器请求执行一些代码。我尝试了以下方法:
protected override void Execute(System.Web.Routing.RequestContext requestContext)
{
if (Session["mallDetected"] == null)
{
Session["mallDetected"] = DateTime.Now.Ticks;
IList<Mall> malls = Mall.FindNearestByIp(Request.UserHostAddress);
if (malls.Count > 0)
{
Session["mall"] = malls[0];
}
}
base.Execute(requestContext);
}
但显然会话状态在 Execute 方法中不可用,直到调用 base.Execute() 之后,这对我不起作用。有没有地方可以为 ASP.NET MVC 中的每个请求执行此会话代码?