2016-11-04 72 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在代碼的任何地方對其進行更新。另外,「內容」變量在哪裏?

另外,使用可爲空的int的HasValue屬性,而不是id == null。

+0

對於可爲空的變量'id == null'和'!id.HasValue'等於 –

+0

是的,但是如果您可以使用每個可空對象上可用的屬性更容易閱讀,那麼使用id == null會有什麼意義 – Stormhashe