Использование помощника HTML.DropDownList с моделью представления и Ajax - PullRequest
0 голосов
/ 03 февраля 2012

Я пытаюсь использовать помощник html.dropDownList с строго типизированной моделью представления с помощью ajax.Я не могу опубликовать код из-за характера проекта.

Вот в основном то, что я делаю ...

  • загрузка представления mvc через модель представления строго типа
  • нажатие кнопки, которая делает запись ajax вметод контроллера
  • , использующий TryUpdateModel для анализа модели представления
  • , обрабатывающий запрос
  • , визуализирующий четное представление для запроса ajax

Согласнок статье, перечисленной ниже, проблема заключается в том, что «ASP.NET MVC предполагает, что если вы рендеринге View в ответ на HTTP POST и используете Html Helpers, то вы, скорее всего, будете« отображатьформа ", которая не прошла проверку".

http://blogs.msdn.com/b/simonince/archive/2010/05/05/asp-net-mvc-s-html-helpers-render-the-wrong-value.aspx

Вместо «повторного отображения того же значения формы» мне нужно, чтобы html.dropDownList был установлен в то же значение в модели представления.

Кто-нибудь знает о каких-либо пользовательских помощниках dropDownList или есть идеи, как этого добиться?

Вещи, которые я уже пробовал / рассматривал

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

  • Рассматривал просто написание обычного списка выбора ... но это неаккуратно и громоздко, так как я разыграю несколько списков выбора в цикле

  • , пишу свой собственный собственный помощник dropDownList ... хотелне изобретайте велосипед

Заранее спасибо

1 Ответ

0 голосов
/ 03 февраля 2012

Мне не совсем ясно, в чем именно заключается ваша проблема, но у меня была похожая проблема.Я использовал помощник Html.DropDownListFor (, SelectListItem []).При обратной передаче он устанавливает значение для выбранного.Ваш вид обратной передачи не требует наличия всех полей исходной модели.

@Html.DropDownListFor(model => model.SelectedValue, MyModels.DropDownSelectables());

Здесь я хочу выбрать выбранное значение в качестве переменной model.SelectedValue, и в моей (отдельной) модели я создал массив элементов selectlist.Остальное автоматическое.

Надеюсь, это поможет, D

...