2016-11-04 4 views
0

아래 코드를 포함 했으므로 편집 단추를 클릭 할 때 레코드를 편집해야하지만 대신 새 레코드가 추가됩니다. 아무도 내가 잘못하고있는 것을 볼 수 있습니까?MVC C# 편집 기능이 편집 대신 추가되었습니다.

보기

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

컨트롤러 당신의 SetExistingDataFormList 방법은 새로운 요소를 추가

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

, 그것은 어디서나 코드를 업데이트 doenst. 또한 "content"변수는 어디에 있습니까?

또한 nullable int가 아닌 HasValue 속성을 사용하십시오 (id == null이 아님).

+0

nullable 변수의 경우'id == null'과'! id.HasValue'는 동일합니다 –

+0

그렇습니다. 그러나 nullable 객체에서 사용할 수있는 속성을 사용하여 읽기 쉽게 만들 수 있다면 id == null을 사용할 때의 요점은 무엇입니까? – Stormhashe