Как получить ViewData внутри формы для правильного отображения? - PullRequest
3 голосов
/ 25 февраля 2011
<%:ViewData["galleryId"]%>
<% using (Html.BeginForm(
             "FinishEdit" , 
             "GalleryManager" , 
             FormMethod.Post , 
             new { enctype = "multipart/form-data" }
             )
         ) 
   {%>
    <%:Html.Hidden("galleryId" , ViewData["galleryId"])%>
<% } %>

Данные представления вне формы отображаются правильно, а viewdata внутри формы - нет.Что происходит?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011

Попробуйте очистить состояние модели в действии вашего контроллера, если вы намерены изменить любую из переменных POSTed и отобразить то же представление:

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

Помощники HTML сначала просматривают значения словаря состояния модели перед ViewData и Model.

2 голосов
/ 25 февраля 2011

Html. Скрытый помощник смотрит первым ModelState словарь.Это может быть причиной.

...