저는 MVC를 처음 접했습니다. 제발 저와 함께하시기 바랍니다. :-)렌더링 동작 return View(); 양식 문제
강하게 입력 된 "스토리"보기가 있습니다. 이보기 (이야기)는 댓글을 가질 수 있습니다.
내 의견 컨트롤러에 "ListStoryComments"및 "CreateStoryComment"라는 두 개의 뷰 (부분이 아님)를 만들었습니다.이 뷰는 이름이 암시하는 것을 수행합니다. 이 뷰는
<!-- List comments -->
<h2>All Comments</h2>
<% Html.RenderAction("ListStoryComments", "Comments", new { id = Model.Story.Id }); %>
<!-- Create new comment -->
<% Html.RenderAction("CreateStoryComment", "Comments", new { id = Model.Story.Id }); %>
(I는 관련 의견을 표시하기 위해 스토리 아이디 전달) : 예컨대, RenderAction을 사용하여 스토리보기에 포함되어 있습니다.
양식을 사용하여 새 메모를 게시 할 때 현재 (부모)보기를 반환하지만 메모 양식 필드에 입력 한 마지막 콘텐츠가 계속 표시되고 ListStoryComments보기 isn 새로운 이야기를 보여주기 위해 업데이트되었습니다.
기본적으로 브라우저의 뒤로 버튼을 누른 것처럼 캐시에서 페이지가로드되고 있습니다. f5 키를 누르면 양식을 다시 게시하려고 시도합니다. 페이지를 수동으로 다시로드 (브라우저 주소 표시 줄에 URL 다시 입력) 한 다음 f5 키를 누르면 새 내용과 빈 양식 필드가 표시됩니다. 이는 원하는 결과입니다. 완성도를 들어
내 CreateStoryComment 조치는 다음과 같습니다
[HttpPost]
public ActionResult CreateStoryComment([Bind(Exclude = "Id, Timestamp, ByUserId, ForUserId")]Comment commentToCreate)
{
try
{
commentToCreate.ByUserId = userGuid;
commentToCreate.ForUserId = userGuid;
commentToCreate.StoryId = 2; // hard-coded for testing
_repository.CreateComment(commentToCreate);
return View();
}
catch
{
return View();
}
}
난 그냥 필 Haack에 의해 다른 MVC 비디오를보고 있었다 그가 "PRG"패턴을 언급 (포스트, 리디렉션이 오기)해야 나는이 문제를 해결할 것이라고 생각한다. 그러나, 내가 'Return RedirectToAction ("Index");'과 같은 것을 시도한다면, "자식 작업은 리디렉션 작업을 수행 할 수 없습니다."라는 오류가 발생하므로 여전히 난처한 상태입니다. –