MVC пропадают значения модели

Программирование Web-приложений и Web-сервисов.

Модератор: Ramzes

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

MVC пропадают значения модели

Сообщение Roman Koff » 26.01.2011 (Ср) 17:25

Не могу понять в чем дело, кто сталкивался?

Делаю представление для диалога удаления записи из БД.
Отображение полей модели делаю, к примеру, так:
Код: Выделить всё
<p>
   Id:
   <%: Html.DisplayFor(x => x.NodeId)%>
   <%: Html.HiddenFor(x => x.NodeId)%>
</p>


При запросе GET отображаются данные объекта, без проблем.
Но, если при удалении записи (запрос POST) произошло прерывание (например запись защищена), и вернулось опять тоже представление, то данные модели скидываются в null (извиняйте за пример на C#, но суть вопроса не меняет). Если вместо Html.DisplayFor использовать хелпер Html.TextBoxFor, то для него значение сохраняется (не зависимо от внедрения скрытого поля и его порядка в форме).

Как вывести не редактируемую форму с возможностью ее повторного отображения?
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: MVC пропадают значения модели

Сообщение Roman Koff » 26.01.2011 (Ср) 18:54

Нашел решение сам. Нужно в контроллере в методе с фильтром [HttpPost] в случае возврата передавать не View() (как в документации), а View(modelobj).

Тагда будет счастье...

Но вообщето привкус осталсо. Почему, когда используются TextBox все сохраняется, а когда просто вывод на страницу (с дублем в скрытых полях), тогда нет...

P.S.
Сам шучу, сам смеюсь...
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Re: MVC пропадают значения модели

Сообщение FaKk2 » 15.02.2011 (Вт) 20:32

Не забываем что в MVC стэйт обьектов не сохраняется между запросами. Если ты не передаешь модель во View при каждом запросе, то данных твой вью никогда не получит.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: MVC пропадают значения модели

Сообщение Roman Koff » 16.02.2011 (Ср) 9:49

С этим я разобралсо. Не понятно, почему для текстбокса все сохраняется, а для скрытого поля -- нет.
На самом деле проблема носит факультативный характер...
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Re: MVC пропадают значения модели

Сообщение FaKk2 » 16.02.2011 (Ср) 20:59

Roman Koff писал(а):С этим я разобралсо. Не понятно, почему для текстбокса все сохраняется, а для скрытого поля -- нет.
На самом деле проблема носит факультативный характер...


Это фича не текстбокса, а браузера. Он сохраняет содержимое полей при перезагрузке страницы.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


Вернуться в ASP.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

    TopList