다음 두 가지 작업 방법이 있습니다 (질문을 위해 단순화 됨).
[HttpGet]
public ActionResult Create(string uniqueUri)
{
// get some stuff based on uniqueuri, set in ViewData.
return View();
}
[HttpPost]
public ActionResult Create(Review review)
{
// validate review
if (validatedOk)
{
return RedirectToAction("Details", new { postId = review.PostId});
}
else
{
ModelState.AddModelError("ReviewErrors", "some error occured");
return RedirectToAction("Create", new { uniqueUri = Request.RequestContext.RouteData.Values["uniqueUri"]});
}
}
따라서 유효성 검사가 통과되면 다른 페이지로 리디렉션됩니다 (확인).
오류가 발생하면 오류가있는 페이지를 표시해야합니다.
내가 return View()
하면 오류가 표시되지만 return RedirectToAction
위와 같이하면 모델 오류가 손실됩니다.
나는 문제에 놀라지 않고 너희들이 이것을 어떻게 처리하는지 궁금해?
물론 리디렉션 대신 동일한 뷰를 반환 할 수 있지만 뷰 데이터를 채우는 "Create"메서드에는 복제해야하는 논리가 있습니다.
어떤 제안?