问题描述:在使用过滤,进行身份验证的时候,没有登录的话直接跳转到登录页,这是没有问题的逻辑,可是;在实际代码中却不是这样的;比如在 你是在order 控制中进来的,没有登录将会直接跳转到login 页面,开始 order 控制中的 action 方法还会执行;请大神,指教一下 如何终止order 的请求。
protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; LoginModel loginModel = Session["Login"] as LoginModel; if (loginModel == null) { //重定向至登录页面 filterContext.Result = RedirectToAction("Index", "Login"); filterContext.HttpContext.Response.End(); //filterContext.Result = new EmptyResult(); return; } else { ViewBag.UserName = loginModel.UserName; } }
解决方案:
filterContext.Result = new RedirectResult("/TickeOrderExce/Login"); return;
这样就可以了 终止了 其实 return 就是可以的;