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