gpt4 book ai didi

javascript - 使用AJAX POST时出现 'RedirectToAction'是不是不好? (ASP.NET)

转载 作者:行者123 更新时间:2023-12-03 04:49:28 24 4
gpt4 key购买 nike

我是学习 jQuery、Json、Ajax 的新手..并且正在尝试清楚地理解这些概念,但遇到了一些困难。

我有一个 ajax POST Delete 方法可以工作,但是我的教授。要求我重构 Controller 中的代码以提高整体性能。

这是我在 Controller 中的删除

// POST: Course/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Course course = courseService.GetCourseByID(id);
courseService.DeleteCourse(id);

return RedirectToAction("Index");
}

还有我的ajax调用

$('#dialog-box').on("click", '#confirm-del', function () {

var token = $('input[name="__RequestVerificationToken"]').val();
var data = { id: id, __RequestVerificationToken: token };

$.ajax({
type: "POST",
url: "@Url.Action("Delete","Course")",
data: data,
//ajaxasync: true,
success: function () {
$("#dialog").dialog("close");
$('div.table-content').empty().load('.table-content');
//console.log("success");
},
error: function () {
console.log("failed");
}
});
});

我的教授。评论说 “Delete Post ajax 调用会重新加载页面或转到 ajax?看起来会重新加载。更改 ajax 中某些元素的颜色以确认它会转到 ajax 调用。这是不必要的,如果 ajax 返回后您有更多逻辑,由于您刚刚重新加载了页面,因此您将无法执行任何操作。

这是在要求澄清该怎么做之后,因为我无法完全理解这个问题。

如果我只是返回View()而不是返回RedirectToAction (Index),将会有更好的性能并解决教授的问题。正在谈论什么?

最佳答案

你的教授是正确的。如果您打算通过 Ajax 调用该 Action 方法,则不应使用 RedirectToAction。

相反,您需要返回JsonResult。例如,

[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Course course = courseService.GetCourseByID(id);
courseService.DeleteCourse(id);

return Json("Course was deleted successfully.");
}

仅供引用:如果您确实需要在极少数情况下重定向到 Ajax 调用中的不同页面,您可以使用 JavaScriptResult .

关于javascript - 使用AJAX POST时出现 'RedirectToAction'是不是不好? (ASP.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42721465/

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