【发布时间】:2019-10-30 02:19:39
【问题描述】:
我的 .Net 应用程序中的数据更新出现问题。当我尝试更新时,它会使用新 ID 创建新行,而不是更新现有 ID。
我没有看到问题出在哪里。也许有人可以帮助解决问题。
这是来自控制器的方法:
public JsonResult SaveDataInDatabase (StudentViewModel model)
{
var result = false;
try
{
if (model.StudentId > 0)
{
tblStudent Stu = db.tblStudent.SingleOrDefault(x => x.IsDeleted == false && x.StudentId == model.StudentId);
Stu.StudentName = model.StudentName;
Stu.Email = model.Email;
Stu.DepartmentId = model.DepartmentId;
db.SaveChanges();
result = true;
}
else
{
tblStudent Stu = new tblStudent();
Stu.StudentName = model.StudentName;
Stu.Email = model.Email;
Stu.DepartmentId = model.DepartmentId;
Stu.IsDeleted = false;
db.tblStudent.Add(Stu);
db.SaveChanges();
result = true;
}
}
catch (Exception ex)
{
throw ex;
}
return Json(result, JsonRequestBehavior.AllowGet);
}
和jQuery函数:
$("#SaveStudentRecord").click(function () {
var data = $("#SubmitForm").serialize();
$.ajax({
type: "Post",
url: "/Home/SaveDataInDatabase",
data: data,
success: function (result) {
alert("Success!..");
window.location.href = "/Home/index";
$("#MyModal").modal("hide");
}
})
})
这是模型视图:
public class StudentViewModel
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public string Email { get; set; }
public bool? IsDeleted { get; set; }
public int? DepartmentId { get; set; }
public String DepartmentName { get; set; }
}
GetStudentByID 方法:
public JsonResult GetStudentById (int StudentId)
{
tblStudent model = db.tblStudent.Where(x => x.StudentId == StudentId).SingleOrDefault();
string value = string.Empty;
value = JsonConvert.SerializeObject(model, Formatting.Indented, new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
return Json(value, JsonRequestBehavior.AllowGet);
}
【问题讨论】:
标签: jquery asp.net ajax rest asp.net-ajax