0

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

在基本控制器中

我正在重写OnAuthorization事件处理程序来检查一些东西,然后返回真或假。如果结果为真,我想重定向到主页

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

}

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

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

但是,当有 AJAX CALL 时,主页会在页面的 DIV 内加载,而不是作为新页面加载。

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

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

希望我很清楚。非常感谢您的帮助

4

3 回答 3

2

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

于 2012-04-12T13:21:54.293 回答
1

你的 AJAX 调用怎么样?如果您使用的是 jQuery AJAX,那么您可以使用 on success 来重定向页面。

$.ajax({
    url: 'ajax/test.html',
    success: function() {
      window.location = "/";
   }
});
于 2012-04-12T13:22:58.267 回答
0
var redirectSucURL = '@Url.Action("MethodName","ControllerName")';

成功消息成功后:函数(结果){

if (true) {
    window.location.href = redirectSucURL;
}
于 2018-12-06T09:57:07.793 回答