jqueryajax中的Javascript重定向

jqueryajax中的Javascript重定向,javascript,ajax,asp.net-mvc,asp.net-core,Javascript,Ajax,Asp.net Mvc,Asp.net Core,这是我昨晚问题的延续。我有一个JQuery AJAX响应,如下所示。我只需要将它重定向到另一个视图。请参阅我的代码: $.ajax({ url: "/Home/PersistSelections", type: 'post', contentType: "application/json; charset=utf-8", dataType: 'json', data

这是我昨晚问题的延续。我有一个JQuery AJAX响应,如下所示。我只需要将它重定向到另一个视图。请参阅我的代码:

      $.ajax({
            url: "/Home/PersistSelections",
            type: 'post',
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            data: JSON.stringify(selectedItems),


            done: function (response) {
                window.location.href = "Home/GoToBooking";
            }
        })
中的代码已完成,但似乎不起作用。我也尝试过成功。我也不确定参数应该是什么(响应还是其他?)

此外,我还看到过这样的代码:

return JavaScript("window.location = 'http://www.google.co.uk'");'
我的控制器中有
JavascriptResult
解析,但是当我尝试使用
返回Javascript
时,我似乎无法解析引用?我正在使用ASP.NET Core 2.2。

尝试替换-

    done: function (response) {
        window.location.href = "Home/GoToBooking";
    }
与-

        success: function (response) {
            window.location.href = "/Home/GoToBooking";
        }

在控制器中而不是JavascriptResult中使用IActionResult

在Js中,您可以这样使用

$.ajax({
url: '//',
type: 'POST',
async: false,
data: { Your data },
success: function (data) {
    window.location.href = "/Home/Index";
 }
});

首先,您需要确保返回的数据类型是json,因为您在ajax中设置了
dataType:“json”

然后,应按如下方式使用
done
方法:

$.ajax({
        url: "/Home/PersistSelections",
        /....
     })
         .done(function (response) {
            window.location.href = "/Home/GoToBooking";
     })
参考:

最后,href应该是
/Home/GoToBooking

以下是您可以参考的工作示例:

1.意见:

<button onclick="test()">click</button>

@section Scripts
{
<script>
    function test() {
        var selectedItems = { Id: 1, Namea: "aaa" };
         $.ajax({
            url: "/Home/PersistSelections",
            type: 'post',
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            data: JSON.stringify(selectedItems)
         })
             .done(function (response) {
                window.location.href = "/Home/GoToBooking";
         })
    }
</script>
}

嗯,那不行。我在success call的正文中添加了一个警报,但没有出现。
[HttpPost]
public JsonResult PersistSelections([FromBody]Test test)
{
    return new JsonResult(test);
}