ajax调用后MVC3重定向到新页面

时间:2012-04-12 13:15:26

标签: c# ajax asp.net-mvc-3 redirect

在ASP.NET MVC3应用程序中 我有一个基本控制器,我覆盖了一些功能。 我从中获取了所有控制器。

在基本控制器中

我重写OnAuthorization事件处理程序以检查某些内容然后返回true或false。如果结果为true,我想重定向到主页

protected override void OnAuthorization(AuthorizationContext filterContext)
{
    if(CheckValues())
    {
        RedirectToHomePage();
    }

}

public ActionResult RedirectToHomePage()
{
    return RedirectToAction("Index", "Home");
}

重定向适用于正常的动作调用。

但是当有一个AJAX CALL时,主页加载到页面的DIV内而不是新页面。

当有AJAX通话时,有没有办法可以强制整个页面重新加载并重定向到主页?

我尝试使用Redirect("~/")重定向到根URL但问题相同。页面正在DIV中加载,而不是整个页面。

希望我很清楚。非常感谢任何帮助

3 个答案:

答案 0 :(得分:2)

您需要在AJAX回调方法(javascript客户端)而不是C#(服务器端)中执行此操作。

答案 1 :(得分:1)

你是如何进行AJAX通话的?如果您正在使用jQuery AJAX,那么您可以使用on success成功重定向页面。

$.ajax({
    url: 'ajax/test.html',
    success: function() {
      window.location = "/";
   }
});

答案 2 :(得分:0)

var redirectSucURL = '@Url.Action("MethodName","ControllerName")';
成功消息后的

    成功:功能(结果){

if (true) {
    window.location.href = redirectSucURL;
}