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

本文关键字:重定向 新页面 调用 ajax MVC3 | 更新日期: 2023-09-27 18:31:05

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

在基本控制器中

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

protected override void OnAuthorization(AuthorizationContext filterContext)
{
    if(CheckValues())
    {
        RedirectToHomePage();
    }
}
public ActionResult RedirectToHomePage()
{
    return RedirectToAction("Index", "Home");
}

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

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

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

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

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

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

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

你是如何做你的 AJAX 调用的?如果您使用的是jQuery AJAX,则可以使用成功时重定向页面。

$.ajax({
    url: 'ajax/test.html',
    success: function() {
      window.location = "/";
   }
});
var redirectSucURL = '@Url.Action("MethodName","ControllerName")';

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

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