gpt4 book ai didi

javascript - JQuery 函数只是在第一次按下提交按钮时调用 Controller 操作

转载 作者:行者123 更新时间:2023-11-30 00:06:38 26 4
gpt4 key购买 nike

我有一个名为 InsertShowStudents() 的 JQuery 函数,每次按下提交按钮 () 时它都会正确执行。成功后,我将调用另一个函数 GetStudents() 以显示表中元素的更新列表。 GetStudents() 函数只是在第一次按下按钮时调用 Controller 操作。之后,InsertShowStudents() 继续在表中插入,但 GetStudents() 函数不会调用 Controller 上的操作方法。我使用断点来证明一下,你知道发生了什么吗??

JQuery 代码:

$(function () {
$("#btnInsertStudent").click(function () {
InsertShowStudents();
return false;
})

})

function InsertShowStudents() {
$.ajax({
type:"post",
url: "/Students/InsertStudent/",
data: { Name: $("#Name").val(), LastName: $("#LastName").val(), Age: $("#Age").val() }
}).success(function () {
GetStudents();
//clear the form
$("#myform")[0].reset();
}).error(function () {
$("#divGetStudents").html("An error occurred")
})
}

function GetStudents()
{
$.ajax({
type: "get",
url: "/Students/GetStudents"
}).success(function (result) {
$("#divGetStudents").html(result)
})
}

Controller 操作:

public ActionResult InsertStudent()
{
return View();
}

[HttpPost]
//[ValidateAntiForgeryToken]
public ActionResult InsertStudent(Student student)
{
if (ModelState.IsValid)
{
db.Students.Add(student);
db.SaveChanges();
return View();
}
return View(student);
}

public PartialViewResult GetStudents()
{
List<Student> students = db.Students.ToList();
return PartialView(students);
}

最佳答案

在这种第一次工作的情况下,我假设存在缓存问题。要强制绕过缓存,您可以将选项添加到 ajax 请求中。有关更多信息,请查看 jquery ajax documentation

$.ajax({
type: "get",
url: "/Students/GetStudents",
cache: false
}).success(function (result) {
$("#divGetStudents").html(result)
})

关于javascript - JQuery 函数只是在第一次按下提交按钮时调用 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38258849/

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