Ajax ile veri kayıt ve post işlemleri
Ajax ile veri kayıt ve post işlemleri

Ajax 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 Ajax 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 Ajax 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 Ajax 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");
        }