Javascript kullanarak formdaki verilerin kayıt tetikleme işlemini gerçekleştiriyoruz.
Core Mvc öncesi klasik Asp.net formlarda kullandığım page methot mantığında çalışıyor.
Client tarafından Javascript ve form için gerekli kodlamalar aşağıdaki gibidir.
Script kodları
function saveAppointment(data) {
$.ajax({
type: 'POST',
url: '/appointment/AddOrUpdateAppoinment',
data: data,
success: function (response) {
if (response === "200") {
$('#saveModal').modal('hide');
alert("Ekleme yapıldı.");
} else {
$('#saveModal').modal('hide');
alert("Ekleme başarısız.");
}
},
error: function () {
$('#saveModal').modal('hide');
alert("İşlem gerçekleşmedi.");
}
});
}
$('#btnSave').click(function () {
var appointment = {
Id : $('#appointmentId').val(),
UserId: $('#selectDentistId').val(),
StartDate: $('#inputStartDate').val(),
EndDate: $('#inputEndDate').val(),
PatientName: $('#inputPatientSurname').val(),
PatientSurname: $('#inputPatientSurname').val(),
Description: $('#inputDescription').val()
}
saveAppointment(appointment);
});
Form içerisinde btnSave Id li button click edildiğinde var appointment nesnesi Modelde istenen verilerle aynı isimde olacak şekilde formdan gelen datalarla doldurulup saveAppointment(appointment); içerisinde saveAppointment fonksiyonuna gönderiliyor.
saveAppointment fonksiyonu Javascript ile Post işlemini url: '/appointment/AddOrUpdateAppoinment', e yapıyor. bu url ile AddOrUpdateAppoinment controller tetiklendiği için kayıt işlemi Controller içerisinde context üzerinden gerçekleştirilip sonuca göre JsonResult işlemi yapılıyor. Dönen cevaba göre Javascript tarafı tepki gösteriyor.
AppointmentController / AddOrUpdateAppoinment
[HttpPost]
public JsonResult AddOrUpdateAppoinment(AddOrUpdateAppointmentModel model)
{
//Validasyon
if (model.Id == 0)
{
Appointment entity = new Appointment()
{
CreatedDate = DateTime.Now,
StartDate = model.StartDate,
EndDate = model.EndDate,
PatientName = model.PatientName,
PatientSurname = model.PatientSurname,
Description = model.Description,
UserId = model.UserId
};
_context.Add(entity);
_context.SaveChanges();
}
else
{
var entity = _context.Appointments.SingleOrDefault(x => x.Id == model.Id);
if (entity == null)
{
return Json("Güncellenecek veri bulunamadı.");
}
entity.UpdatedDate = DateTime.Now;
entity.PatientName = model.PatientName;
entity.PatientSurname = model.PatientSurname;
entity.Description = model.Description;
entity.StartDate = model.StartDate;
entity.EndDate = model.EndDate;
entity.UserId = model.UserId;
_context.Update(entity);
_context.SaveChanges();
}
return Json("200");
}