微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 重定向成功并显示失败错误

我已经实现了一个控制器来创建新的用户.当它成功创建用户时,它将重定向到Index().

我想要的是一切都可以重定向,但保持在当前页面,看到错误,当某些失败.

我正在使用jQuery ajax与MVC.

我的控制器如下所示:

[Authorize]
public ActionResult createuser(string username)
{
    try
    {
        //here the logic to create the user
    }   
    catch (Exception ex)
    {
        string error = string.Format("Error creating user: {0}",ex.Message);
        Response.StatusCode = 500;
        Response.Write(error);    
    }
    return RedirectToAction("Index");
}

表单submit是用jQuery截取的,然后用ajax进行调用

$("#new-user-form").submit(function() {
    var form = $(this);
    $.ajax({
    type: "GET",url: form.attr('action'),data: form.serialize(),success: function(data,textStatus,xhr) {
            //At this point I would like to redirect
        },error: function(xhr,errorThrown) {
            $(".error-summary").html(xhr.responseText);
        }
    });

    //cancel the event
    return false;
});

发生错误时工作正常,但我不知道如何实现成功案例.

我打开了其他选择.

解决方法

如果您要在成功操作中重定向,为什么要使用AJAX? AJAX的目的是仅刷新站点的一部分而不重新加载整个页面.如果在成功的行动中,您将要重定向,完全失去了从AJAX获得的所有目的和好处.但是因为你问这个可以做什么:
[Authorize]
public ActionResult createuser(string username)
{
    ...
    if (Request.IsAjaxRequest())
    {
        return Json(new { redirectToUrl = Url.Action("Index") });
    }
    return RedirectToAction("Index");
}

接着:

success: function(data,xhr) {
    window.location.href = data.redirectToUrl;
},

原文地址:https://www.jb51.cc/jquery/176498.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐