我在这里有点束缚,我正在尝试使用 ajax 提交表单,一切顺利,花花公子,直到服务器完成它之后,它决定将操作加载到新页面上,这正是我不想要什么。
这是我的控制器
[HttpPost]
public ActionResult Submit(int id, string trainingProgramId, FormCollection form, User user)
{
//Do Some action
return null;
}
在另一个控制器中,我将其设置为 $return PartialView(model);
这是我正在使用的 JQuery 代码。
$(function () {
$("form").submit(function (e) {
if (nextquestion()) { //check if posting can proceed
$.ajax({
type: "POST",
data: $(this).serialize(),
url: $(this).attr("action"),
success: function (response) {
alert(response);
$('#cases:last-child').insertAfter(response);
},
error: function (data) { }
});
}
e.preventDefault();
});
});
在所有情况下,执行操作后我都会被重定向到不同的 url。这不是意图,特别是如果我的意图可能是将更多内容加载到页面中。
我一直在尝试一切,一堆解决方案,但是一旦我的控制器执行返回语句,页面就会自动重新加载到 $/Submit
我添加了 $ @Scripts.Render(" https://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js "); 到我的脚本
从任何其他示例中,我发现这应该按照我的意愿工作,保持在同一页面上,但是我发现很难理解谁负责以任何方式更改页面。当我返回我的 PartialView 时,一个全新的页面加载了模型,因为我已经为最初插入的 Partial View 设置了它。
有人愿意解释发生了什么或为什么我的代码是错误的吗?
经过一整天的调试,我找不到它。