我有一個在我的MVC應用程序中設置的會話變量。無論何時該會話過期並且用戶嘗試刷新它們所在的頁面,該頁面都將引發錯誤,因爲會話不再設置。MVC等效於Page_Load
是否有任何地方可以檢查加載視圖之前是否設置了會話?也許把一些東西放在Global.asax文件中?
我可以在每個ActionResult的開頭都做這樣的事情。
public ActionResult ViewRecord()
{
if (MyClass.SessionName == null)
{
return View("Home");
}
else
{
//do something with the session variable
}
}
有沒有其他辦法可以做到這一點? 在這種情況下最佳做法是什麼?
你需要一個自定義操作過濾器,一些更多的信息的http:// MSDN .microsoft.com/zh-cn/gg618482 – 2012-04-10 14:49:00
此處的類似討論:http://forums.asp.net/t/1287687.aspx – 2012-04-10 14:49:44
除了@ ChrisDiver的評論,如果您需要將它應用於所有控制器/操作,你可以裝飾一個基地控制器,從其中你所有的其他控制器繼承。 – Chris 2012-04-10 15:03:10