我有一個控制器,所有的控制器都繼承自我需要爲每個控制器請求執行一些代碼。我試過如下:在ASP.NET MVC的每個請求上執行代碼
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中爲每個請求執行此會話代碼?
爲什麼不使用'ActionFilter`? – 2009-07-30 20:30:39
你說得對,Mehrdad,這正是我需要的。 – Chris 2009-07-30 20:46:16