日期:2014-05-17  浏览次数:20491 次

mvc 框架页中如何重定向到顶级页面
如下BaseController 被其他Controller继承(不包括LoginController), 但是mvc网站使用了框架页,所以session失效后会登录页面会在框架页中显示,怎么让他重定向时在顶级页面显示

public class BaseController : Controller
    {
        //
        // GET: /Base/
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext.HttpContext.Session["Token"] == null)
            {
                filterContext.Result=  RedirectToRoute(new{ Controller ="Login",Action ="LogOn" });
                return;
            }
            base.OnActionExecuting(filterContext);
        }

    }

------解决方案--------------------
用JS解决,有几种办法,简单的办法

在登陆页面判断父窗口是否为本窗口,不是就再跳转一下。
------解决方案--------------------
top.location = '/login';
------解决方案--------------------
filterContext.Result= Content("<script type='text/javascript'>top.location = '/login';</script>");