在刚学mvc的时候 我一开始随便的做了拦截跳转,这样也实现了跳转 表面看起来完全没问题!
if (filterContext.HttpContext.Session["userId"] == null)
{
filterContext.HttpContext.Response.Redirect("~/LoginContent/Login", true);
}
但是某一天,突然调试了一下发现这个跳转 并不是及时的,而是会等把index的这个 action 执行,视图加载完毕才跳转!也是就是类似 在asp.net webform 里面 使用javascript做跳转!必须等到页面加载完毕,才会跳转!这样也就意味的 根本没有进行拦截!
if (filterContext.HttpContext.Session["userId"] == null)
{
filterContext.Result = new RedirectResult("~/LoginContent/Login");
base.OnActionExecuting(filterContext);
}