ajax - 在实体框架 MVC 中使用 ajax 更新记录
问题描述
我是初学者并尝试通过在Entity Framework MVC中使用Ajax 调用来更新我的记录。我成功了,但没有在控制器端。正如您在我的代码中看到的那样idtoSearch
std.FirstName
std.LastName
AjaxStudentController
[HttpPost]
public ActionResult UpdateStudent(Student std, int idtoSearch) {
using (StudentContext db = new StudentContext()) {
Student updatestd = db.Student.Find(idtoSearch);
if (!string.IsNullOrWhiteSpace(std.FirstName)) { updatestd.FirstName = std.FirstName; }
if (!string.IsNullOrWhiteSpace(std.LastName)) { updatestd.LastName = std.LastName; }
db.SaveChanges();
}
return Json(true, JsonRequestBehavior.AllowGet);
}
在这里你可以看到ajax代码
<button class='upbtn' data-upid=" + stdid + ">Update</button>
$(".upbtn").click(function () {
var student = {
"upFirstName" : $("#name").val(),
"upLastName" : $("#lname").val(),
}
$.ajax({
url: "/AjaxStudent/UpdateStudent",
method: "Post",
data: {
idtoSearch: upid,
std: student
}
}).done(function(){
alert("Update button");
}).
error(function () {
alert("Update Error");
});
});
我无法在浏览器上获得任何更新。任何人都请告诉我该怎么做。
解决方案
我已经解决了我的问题。我在错误的变量中更新我的数据,即upFirstName
& upLastName
。那是我的错误。我应该在同一个变量中更新我的数据,即FirstName
& LastName
。只需写下面的代码
var student = {
"FirstName" : $("#name").val(),
"LastName" : $("#lname").val(),
}
而不是这个
var student = {
"upFirstName" : $("#name").val(),
"upLastName" : $("#lname").val(),
}
我希望它对你也有帮助。
推荐阅读
- python - 如何在python中将网络十六进制字符串转换为整数
- python - 错误“str”对象没有属性“blit”
- spring-boot - 如何在 Spring Boot 中设置同站点 cookie 标志?
- airflow - 气流 EmailOperator 抛出“smtplib.SMTPNotSupportedError:服务器不支持 STARTTLS 扩展”?
- django - 如何将图像发布到 django rest API
- python-3.x - 如何指定 opencv imwrite 函数写入图像的字节数?
- python - 如何在 Python 中将这些字符串解析为前缀符号的元组?
- angular - 当我更改页面时,ionViewDidLeave 和 ionViewDidEnter 没有触发
- vb6 - 如何将应用程序带到最前面?
- javascript - 跨域发送信息,不接触服务器端