actionlink를 사용하여 별도의 컨트롤러에서 작업을 호출하려고합니다.별도의 컨트롤러 (ASP.NET MVC3)에서 호출 가져옵니다
문제는 [HttpGet] 및 [HttpPost] 작업이 모두 호출되고 포스트 메서드가 작업이 호출 된 뷰를 반환하므로 아무 것도 표시되지 않습니다.
가져 오기 방법 :
@Html.ActionLink("View", "View", "Pages", new { id = Model.FormId, index = item.Index-1 }, null)
:
[HttpGet]
public ActionResult View(int id, int index)
{
var form = formService.GetForm(id);
var pageModel = new PageViewModel();
var page = form.Pages.ElementAt(index);
ModelCopier.CopyModel(page, pageModel);
ModelCopier.CopyModel(form, pageModel);
return View(pageModel);
}
포스트 방법이 (다른 컨트롤러에 의해 반환 된보기에서)보기에서라고 어떻게
[HttpPost]
public ActionResult View(PageViewModel pageViewModel)
{
if (!ModelState.IsValid)
{
return RedirectToAction("Details", "Forms", new { id = pageViewModel.FormId });
}
var pageToEdit = pageService.GetPage(pageViewModel.PageId);
ModelCopier.CopyModel(pageViewModel, pageToEdit);
pageService.SavePage();
return RedirectToAction("Details", "Forms", new {id = pageViewModel.FormId});
}
여기서 내가 뭘 잘못하고 있니? 기본적으로 업데이트/편집 기능으로 작동하길 원합니다. 그리고 반환 된보기는 viewmodel에 대한 간단한 양식을 포함합니다.
난 당신이 작업 링크를 사용 할 수 있습니다 생각하지 않는다
예상되는 동작을 명확히 할 수 있습니까? 두 가지 행동이 모두 부름 받고 있다는 것은 무엇을 의미합니까? 브라우저는 하나의 요청 만 발행해야합니다. – marcind