У меня проблема с обновлением данных в моем приложении .Net.Когда я пытаюсь обновить, он создает новую строку с новым идентификатором вместо обновления существующего.
Я не видел, в чем проблема.Может быть, кто-то может помочь с разрешением.
Вот метод от контроллера:
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);
}