Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ASP.NET MVC 5应用程序-在发布ajax帖子后,如何重定向到URL?_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Jquery ASP.NET MVC 5应用程序-在发布ajax帖子后,如何重定向到URL?

Jquery ASP.NET MVC 5应用程序-在发布ajax帖子后,如何重定向到URL?,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我试图在ajax帖子成功后将用户重定向到一个页面。会话变量确实会被更改,但之后它不会重定向 控制器: Javascript 首先,结果将保存一个对象,所以将其与true进行比较是相当奇怪的,尽管由于类型强制,它实际上在这里工作 其次,您的逻辑的主要问题是,您正在检查响应的redirectUrl属性,但正确的名称是RedirectTour 成功:结果{ window.location=result.l; } 但是,值得注意的是,在这种情况下,AJAX请求是完全冗余的,因为您在页面完成后立即重定向页

我试图在ajax帖子成功后将用户重定向到一个页面。会话变量确实会被更改,但之后它不会重定向

控制器:

Javascript

首先,结果将保存一个对象,所以将其与true进行比较是相当奇怪的,尽管由于类型强制,它实际上在这里工作

其次,您的逻辑的主要问题是,您正在检查响应的redirectUrl属性,但正确的名称是RedirectTour

成功:结果{ window.location=result.l; }
但是,值得注意的是,在这种情况下,AJAX请求是完全冗余的,因为您在页面完成后立即重定向页面。

我假设在youn controller中,您有操作,然后使用location.href 重定向操作所在的位置

$document.on'click','functionName',function{ 游泳{ 标题:你确定吗?, 类型:info, showCancelButton:true, confirmButtonColor:2196F3, confirmButtonText:是,分配它!, CloseOnConfig:false, 请确认:正确, },功能{ $.ajax{ 类型:post,, url:User/Create, ajaxasync:true, 成功:功能{ swalAssigned!,用户已创建!,成功; location.href=/User/Create; }, 错误:functiondata{ 哇,出了点问题!错误; } };
您只需在ajax成功中的MVC视图中使用-

成功:功能 { window.localation.href=@Url.ActionIndex,Home;
}投票以键入错误的方式关闭。redirectToUrl和redirectUrl不是一回事。在javascript结果中。redirectUrl您缺少一个到redirectToUrl!=redirectUrl OP从AJAX请求返回URL,而不是硬编码。不必这样做。他只需从控制器发送一个字符串,然后使用硬编码重定向即可way!@Rory McCrossano当然有必要,例如,如果要重定向到的页面是由服务器上执行的逻辑的结果决定的。没有必要。在逻辑成功时发送字符串可能就可以了。@RorymcCrossansen您的逻辑分布在服务器端和客户端之间。只在响应中发送URL更有意义。The OP是从AJAX请求返回URL,而不是硬编码。另外,为什么添加了所有不必要的swal逻辑?我假设您是从另一个答案复制/粘贴的?我添加了示例,这是我项目中的代码,不是从另一个答案复制/粘贴的。
[HttpPost]
public ActionResult SelectFacility(string Facility)
{
    System.Web.HttpContext.Current.Session["Facility"] = Facility;
    return Json(new { redirectToUrl = Url.Action("Index", "Incident") });
}
$("#Facility").on("change", function () {
        var fac = $(this).find("option:selected").text();
        /*
        $.post("/Incident/SelectFacility", {
            Facility: fac
        });
        window.location = result.redirectUrl;*/

        $.ajax({
            url: '@Url.Action("SelectFacility","Incident")',
            type: 'POST',
            //contentType: 'application/json', not needed
            //dataType: 'jsonp', jsonp is for sending to a site other than the current one
            data: {
                Facility: fac
            },
            success: function (result) {
                if (result == true) {
                    window.location = result.redirectUrl;
                }
            }
        });
    });