2009-09-19 2 views
1

У меня есть классический сценарий, когда форма отображается из метода действия, возвращающего представление.Есть ли способ сохранить всплывающие подсказки

В представлении содержатся некоторые раскрывающиеся списки, которые предварительно заполнены (например, вызов некоторых методов репозитория) перед визуализацией представления, и DTO передается в представление.

Когда форма опубликована, я хотел бы повторно отобразить один и тот же вид, не возвращая значения для выпадающих списков аналогично тому, как текстовые поля и другие элементы управления формой сохраняют свое состояние.

По-видимому, при отправке формы публикуется только выбранное значение в выпадающих меню.

Каков наилучший способ сделать это?

ответ

0

Попробуйте выполнить два отдельных действия: один с атрибутом AcceptVerbs.Get, который будет использоваться для первоначального отображения вида. У другого будет атрибут AcceptVerbs.Post, и это действие будет срабатывать при возникновении события POST.

Вы можете просто вернуть View() из версии Post, когда закончите. Механизм ASP.NET MVC достаточно умен, чтобы не заставлять вас повторно отображать весь вид.

+1

У меня уже есть два метода serparate для сценариев Get and Post. Все значения сохраняются в сообщении, но в выпадающих меню. Я использую расширение mvc contrib, например: <% = this.Select («CategoryId»). Ярлык («Категория»). Параметры (Model.CategoriList, «Id», «CategoryName»). FirstOption («Выбрать») .Selected (Model.CategoryId)%> – Ronnie

+1

Ну, если вам нужно повторно отобразить представление, вам придется вытащить набор элементов раскрывающегося списка. Значение элемента SELECT, если оно опубликовано, будет содержать только значение выбранного параметра. Чтобы сделать это проще, вы можете использовать RedirectToAction в своем методе действий, чтобы вам не приходилось дублировать код. –