gpt4 book ai didi

javascript - 在 Ajax 调用后跟随 ASP.NET ActionResult

转载 作者:行者123 更新时间:2023-11-30 20:54:40 25 4
gpt4 key购买 nike

Controller 返回一个ActionResult,即:

public async Task<ActionResult> Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}

// do something

return RedirectToAction("Index", "Orders", null });
}

我在 View 中使用 ActionLink 时效果很好。但实际调用是通过 Ajax 完成的:

$.ajax({
url: "/Orders/Delete",
cache: false,
data: { id: $("#btnCancel").data("id") }
}).done(function (response) {
$("html").html(response);
});

与:

$("html").html(response);

行我正在尝试关注返回的 html 页面。它不起作用:html 呈现错误(布局和颜色不同)甚至地址也不正确(当然它保留在当前页面上,而不是遵循 Controller 路径)。

我不确定这在 jQuery 中是否可行。为什么我使用 Ajax 调用而不是 ActionLink?因为我需要等待用户确认:

$("#btnCancel").click(function () {
event.preventDefault();
swal({
title: "@Resources.MsgCancelOrderTitle",
text: "@Resources.MsgCancelOrderText",
type: "warning",
showCancelButton: true,
confirmButtonClass: "btn-danger",
confirmButtonText: "@Resources.MsgCancelOrderConfirm",
cancelButtonText: "@Resources.MsgCancelOrderCancel",
closeOnConfirm: false,
closeOnCancel: true
},
function (isConfirm) {
if (isConfirm) {
swal({
title: "@Resources.MsgCancelOrderSuccessTitle",
text: "@Resources.MsgCancelOrderSuccessText",
type: "success"
},
function () {
$.ajax({
url: "/Orders/Delete",
cache: false,
data: { id: $("#btnCancel").data("id") }
}).done(function (response) {
$("html").html(response);
});
});
}
});
});

最佳答案

如果你想重定向到另一个 View ,那么不要为 ajax 而烦恼,它会破坏它的全部目的。通常,ajax 调用会返回一些数据(JSON 或 XML)或一小段 HTML,这些代码旨在适合进行 ajax 调用的页面中的某个位置(通常在 MVC 中作为局部 View 实现)。

如果你需要重定向,那么这样做:

一旦用户通过警告框确认了他们的选择,那么如果所需的请求使用 GET 方法(如您的示例),那么只需使用适当的 URL 调用 window.location.href 即可做吧。如果它使用的是 POST,那么通常会有一个 HTML 表单,您可以指示它自行提交。

关于javascript - 在 Ajax 调用后跟随 ASP.NET ActionResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47802948/

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