我有一个在我的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