2016-11-04 8 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

AddではなくAddOrUpdateにする必要がありますか? –

答えて

0

あなたSetExistingDataFormList方法が唯一の新しい要素を追加して、それがどこかのコードでそれらを更新doenst。また、 "content"変数はどこにありますか?

また、id == nullではなく、nullable intのHasValueプロパティを使用します。

+0

null可能な変数 'id == null'と'!id.HasValue'は等価です –

+0

はい、しかし、nullの可能なすべてのオブジェクトで利用可能なプロパティを使用して読みやすくすることができる場合は、 – Stormhashe

関連する問題