2016-11-10 6 views
0

Здесь у меня есть строго типизированный вид, в котором я показываю зарегистрированный пользователь своим данным в форме, которая позволит обновлять измененные данные и изменения отражаются в базе данных.Мне нужно обновить представление модели и отразить эти изменения в базе данных

Я написал весь код для методов действий как в методе GET, так и в POST, но я не могу понять, что вызывает проблему. Проблема в том, что изменения, которые я сделал на странице просмотра, привязанной к модели класс не отражается обратно в таблицу базы данных, хотя я написал метод db.submit changes().

Ниже мой код: методы действия GET и POST для просмотра страницы Detailsupdate:

[HttpPost] 
 
     [ValidateAntiForgeryToken] 
 
     public ActionResult PatientDetailsPage2(Patients p) 
 
     { 
 
      if (ModelState.IsValid) 
 
      { 
 
       tblPatient updatedpatientdetail = new tblPatient() 
 
       { 
 
        PatientName = p.PatientName, 
 
        PatientAge = (short) p.Age, 
 
        PatientMail = p.PatientEmail, 
 
        PatientMobileNo = p.PatientMobileNo, 
 
        PatientPassword = p.PatientPassword 
 
       }; 
 
       db.SubmitChanges(); 
 
       return View(); 
 
      } 
 
      else 
 
      { 
 
       ViewBag.ErrorMessage = "Please ensure all the fields are filled correctly"; 
 
      } 
 
      return View(); 
 

 
     } 
 
     public ActionResult PatientDetailsPage2() 
 
     { 
 
      if(TempData["doc"] != null) 
 
      { 
 
       var data = (Patients)TempData["doc"]; 
 
       return View(data); 
 
      } 
 
      return View(); 
 
     }

Кроме того, я хотел бы отметить, что, когда я место отладки и сканирования для обновленных значений он показывает обновленное значение в точке, где объект модели присваивается параметрам таблицы, но как только передается изменение кода строки, он показывает старое значение для поля пароля (значение поля, которое я хочу обновить здесь). Пожалуйста, помогите мне программисты!

+0

Необходимо добавить 'tblPatient' в контекст перед сохранением - например. 'Db.Patients.Add (tblPatient); db.SaveChanges(); ' –

+0

@StephenMuecke Пациенты - это класс модели, и он вообще не загружается в коде –

+0

Извините, это должно быть' updatedpatientdetail', а не 'tblPatient' –

ответ

0
[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult PatientDetailsPage2(Patients p) 
    { 
     if (ModelState.IsValid) 
     { 
      tblPatient updatedpatientdetail = new tblPatient() 
      { 
       PatientName = p.PatientName, 
       PatientAge = (short) p.Age, 
       PatientMail = p.PatientEmail, 
       PatientMobileNo = p.PatientMobileNo, 
       PatientPassword = p.PatientPassword 
      }; 
      db.Patients.Add(updatedpatientdetail); 
      db.SubmitChanges(); 
      return View(); 
     } 
     else 
     { 
      ViewBag.ErrorMessage = "Please ensure all the fields are filled correctly"; 
     } 
     return View(); 

    } 

Вы должны добавить объект модели к модели Db перед сохранением.

 Смежные вопросы

  • Нет связанных вопросов^_^