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

窗體外的視圖數據呈現正確,但窗體內的viewdata沒有。到底是怎麼回事?如何讓窗體內的ViewData正確顯示?

+4

因爲它是隱藏字段? – 2011-02-25 01:23:48

回答

2

嘗試在你的控制器動作清除模型的狀態,如果你打算修改任何張貼的變量,並呈現了同樣的觀點:

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

HTML輔助首先在模型狀態字典值的ViewData之前的前瞻性和模型。

2

Html.Hidden helper看起來第一個ModelState字典。這可能是一個原因。

相關問題