这是一个mvc应用程序
我的主页上有下面的链接
Link1 Link2 Link3 signout signIn
我有一个已填充的userprofile对象当身份验证完成时。
用户的会话对象过期时间我点击链接,我得到了黄页(错误页)。
我更喜欢这样的情况,当你点击链接和会话对象过期,您得到重定向到登录页面。
Soln A:我可以写一个方法来解决这个问题那么哪个测试userprofile对象的空值呢在点击每个链接时调用这个方法。
我不希望这种方法,因为在未来如果有是新的控制器,我需要好好照顾它们。
你知道我怎样才能解决这个问题吗?我将有一个比所有其他控制器继承的基础控制器。在这里面我要加一个
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (SessionManager.Instance() == null)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary
{
{ "Controller", "BaseController" },
{ "Action", "LogOn" }
});
}
base.OnActionExecuting(filterContext);
}
OnAction执行将在任何控制器中的任何方法之前被击中-这样你可以检查你的会话是有效的或者你的用户是有效的或者其他什么,如果不是这种情况,处理重定向到你想要的视图。如果你在Google上搜索Filters Actions MVC,你会发现更多的信息