2016-08-04 5 views
0

私のコントローラには編集と作成のポストメソッドがあり、私のサービスでは別のメソッドを呼び出すことは別として同じです。イムは、ちょうど1にこれらのメソッドをマージする方法がある場合は不思議あなたはただ一つの方法があり、formタグでアクションやコントローラの名前を指定することができ声明をマージしてmvcの1にポストメソッドを作成します

[Route("Project/{projectnumber}/Structures/{structureid}/Carbon/Create")] 
     [HttpPost] 
     public ActionResult Create(CarbonViewModel carbonViewModel){ 
      Carbon Carbon = _Mapper.Map<CarbonViewModel, Carbon>(carbonViewModel); 

      if (!_CarbonService.InsertCarbon(Carbon)) { 
       return View(carbonViewModel); 
      } 

      return RedirectToAction("Edit", new { 
       projectNumber = carbonViewModel.ProjectNumber, 
       structureId = carbonViewModel.StructureId 
      }); 
     } 

[Route("Project/{projectnumber}/Structures/{structureid}/Carbon/Edit")] 
    [HttpPost] 
    public ActionResult Edit(CarbonViewModel carbonViewModel){ 
     Carbon Carbon = _Mapper.Map<CarbonViewModel, Carbon>(carbonViewModel); 

     if (!_CarbonService.UpdateCarbon(Carbon)) { 
      return View(carbonViewModel); 
     } 

     return RedirectToAction("Edit", new { 
      projectNumber = carbonViewModel.ProjectNumber, 
      structureId = carbonViewModel.StructureId 
     }); 
    } 
+0

場合、私はルートを確認することができます。モデルにIDプロパティがあると仮定すると、IDの値に基づいて作成または編集するかどうかを確認できます(たとえば、if(carbonViewModel.ID.HasValue){//更新} else {insert})) –

答えて

0
if(Carbon.ID.HasValue) 
{ 
    //you code for update 
} 
else 
{ 
    //your code for add 
} 
関連する問題