2016-11-04 9 views
0

Включил мой код ниже, он должен отредактировать запись, когда вы нажимаете кнопку редактирования, но вместо этого добавляет новую запись. Может ли кто-нибудь увидеть, что я делаю неправильно?Функция редактирования MVC C# добавляет вместо редактирования

Посмотреть

<a href="@Url.Action("Data","Admin", new { id=data.Id })" id="launchBtn" class="btn btn-default">Edit</a> 

Контроллер

public ActionResult Data(int? id) 
     { 
      DataVM vm; 
      if(id == null) 
      { 
       vm = new DataVM(); 
      } 
      else 
      { 
       var dbData = _dataRepository.FindById(id.Value); 
       vm = _mapper.Map<DadaVM>(dbData); 
      } 
      this.SetExistingDataFormList(vm); 
      return View(vm); 
     } 

private void SetExistingDataFormList(ContentVM vm) 
     { 
      var datas = _dataRepository.GetDataEndpoints(); 

      foreach (var data in datas) 
      { 
       vm.Datas.Add(new DataVM 
       { 
        Id = content.Id, 
       }); 
      } 
     } 
+1

вы должны использовать if (id.HasValue), а не id == null – Stormhashe

+0

Разве это не AddOrUpdate, а Add? –

ответ

0

ваш метод SetExistingDataFormList только при добавлении новых элементов, он doenst обновлять их в коде. Кроме того, где находится переменная «content» ?.

Кроме того, используйте свойство HasValue вашего nullable int, а не id == null.

+0

Для нулевых переменных 'id == null' и'! Id.HasValue' равны –

+0

Да, но в чем смысл использования id == null, если бы вы могли упростить чтение с использованием свойства, доступного для каждого объекта с нулевым значением – Stormhashe

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

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