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