gpt4 book ai didi

asp.net-mvc - 如何在 $.ajax 回调中 RedirectToAction?

转载 作者:行者123 更新时间:2023-12-03 21:57:45 25 4
gpt4 key购买 nike

我使用 $.ajax() 每 5 秒轮询一次操作方法,如下所示:

$.ajax({
type: 'GET', url: '/MyController/IsReady/1',
dataType: 'json', success: function (xhr_data) {
if (xhr_data.active == 'pending') {
setTimeout(function () { ajaxRequest(); }, 5000);
}
}
});

和 ActionResult 操作:

public ActionResult IsReady(int id)
{
if(true)
{
return RedirectToAction("AnotherAction");
}
return Json("pending");
}

我必须将操作返回类型更改为 ActionResult 才能使用 RedirectToAction(最初是 JsonResult,我返回 Json(new { active = 'active' };),但看起来在 $.ajax() 成功回调中重定向和渲染新 View 时遇到问题。我需要从这个轮询 ajax 回发中重定向到“AnotherAction”。Firebug 的响应是来自“AnotherAction”的 View ,但它没有渲染。

最佳答案

您需要使用 ajax 请求的结果并使用它来运行 javascript 来手动更新 window.location 。例如,类似:

// Your ajax callback:
function(result) {
if (result.redirectUrl != null) {
window.location = result.redirectUrl;
}
}

其中“result”是 jQuery 的 ajax 方法在完成 ajax 请求后传递给您的参数。 (要生成 URL 本身,请使用 UrlHelper.GenerateUrl,它是一个 MVC 帮助程序,可根据操作/ Controller /等创建 URL。)

关于asp.net-mvc - 如何在 $.ajax 回调中 RedirectToAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3534956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com