2011-02-25 6 views
3
<%:ViewData["galleryId"]%> 
<% using (Html.BeginForm(
      "FinishEdit" , 
      "GalleryManager" , 
      FormMethod.Post , 
      new { enctype = "multipart/form-data" } 
      ) 
     ) 
    {%> 
    <%:Html.Hidden("galleryId" , ViewData["galleryId"])%> 
<% } %> 

양식 외부의보기 데이터가 올바르게 렌더링되지만 양식의 viewdata은 그렇지 않습니다. 무슨 일 이니?양식 내에서 ViewData를 올바르게 표시하려면 어떻게합니까?

+4

숨겨진 필드인가요? –

답변

2

컨트롤러 액션에서 모델 상태를 삭제하십시오 :

[HttpPost] 
public ActionResult FinishEdit() 
{ 
    ... 
    ModelState.Remove("galleryId"); 
    ViewData["galleryId"] = "some new gallery id"; 
    return View(); 
} 

HTML을 헬퍼는 첫째을 ViewData 전에 모델 상태 사전 값을 찾고 및 모델.

2

Html.Hidden 헬퍼가 먼저 보입니다. ModelState 사전. 이것은 이유 일 수 있습니다. 당신이 게시 변수 중 하나를 수정하고 동일한 뷰 렌더링하려는 경우

관련 문제