【问题标题】:MVC3 redirect to a new page after ajax callajax调用后MVC3重定向到新页面
【发布时间】:2012-04-24 20:16:48
【问题描述】:

在 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 中加载,而不是在整个页面中。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:
        var redirectSucURL = '@Url.Action("MethodName","ControllerName")';
        

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-24
          • 2018-04-17
          • 1970-01-01
          • 2013-07-16
          • 2011-12-17
          • 2011-01-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多