ASP.NET MVC 拦截器中如何停止往后面的代码运行!

  public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //这一步是验证是否登陆
            if (filterContext.HttpContext.Session["User"] == null)
            {
                //当用这个方法的时候, 页面输出完了还会向后面的代码执行,使用return 也没效果;
                //   filterContext.HttpContext.Response.Redirect("~/Home/Index",true);
                //   return ;


                ErrorRedirect(filterContext);
             
                
            }
        
 // 错误处理方法
        private void ErrorRedirect(ActionExecutingContext filterContext)
        {
            //注:由于前端页面用的Iframe框架,用下面的方法跳转的时候会跳转到iframe里面去,所以不能用注释掉的方法
           // filterContext.Result = new RedirectToRouteResult("Default", new RouteValueDictionary(new { controller = "Home", action = "Index" }));
           // filterContext.Result = new RedirectResult("/Home/Index");
            ContentResult content = new ContentResult();
            content.Content = "<script language='javascript'> top.location.href = '/Home/Index';</script>";
            filterContext.Result = content;
        } // end ErrorRedirect       





版权声明:本文为peiyuanxin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。