Лучшие практики для обработки каскадных выпадающих списков в других сценариях обратной передачи в ASP.NET MVC - PullRequest
0 голосов
/ 20 мая 2009

Я видел несколько примеров обработки каскадных выпадающих списков в ASP.NET MVC с использованием jQuery и Ajax. Конечно, это требует включения JavaScript. Предполагая, что javascript отключен, что было бы лучшим решением для обработки каскадных выпадающих списков.

Вот реальный сценарий веб-формы asp.net, которую я разрабатываю для инвентарного приложения для своей компании. На веб-странице у меня есть каскадные выпадающие списки. Для этого примера, скажем, выпадающий список «Марки автомобилей» и «Модель автомобиля», который зависит от выбранной марки автомобиля. Кроме того, в этой форме у меня есть пользовательский элемент управления, который реализует функцию поиска, чтобы пользователь мог ввести город и / или штат, выбрать поиск и выбрать клиента из сетки, что вызывает событие для сохранения идентификатора клиента в поле для текущий заказ на веб-странице. Я не использую JavaScript на этой странице. Раскрывающийся список запускает обратную передачу и перезагружает значения раскрывающегося списка во втором раскрывающемся списке. Пользовательский элемент управления поиском вызывает обратную передачу, когда пользователь нажимает кнопку «Найти» и когда пользователь выбирает клиента из таблицы.

Как это будет обрабатываться в MVC? Будут ли постбэки в моем примере соответствовать действиям в MVC? Будет ли действие по смене марки автомобиля? Акция для поиска? Действие для выбора из вида сетки?

Ответы [ 2 ]

0 голосов
/ 12 июня 2009

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

Я знаю, когда форма публикуется это идет к определенному ActionName и по умолчанию он будет таким же, как имя страницы aspx, так что если это Index.aspx, когда опубликовано, позвоните Метод Index () сидит в своем контроллер.

Вышеуказанное поведение вызывало небольшую проблему, поэтому

From:<%=Html.DropDownList("From", (SelectList)ViewData["From"], new { onchange = "this.form.action='Index'; this.form.submit();" })%>
To :<%=Html.DropDownList("To", (SelectList)ViewData["To"], new { onchange = "this.form.action='GetTo'; this.form.submit();" })%>

Сначала я изменил имя действия на «GetTo», а затем разместил данные, поэтому он перейдет к методу GetTo контроллера, а не к Index ().

Здесь я использую javascript, чтобы изменить имя действия, а затем отправляю форму.

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

0 голосов
/ 20 мая 2009

Если это не значительный объем данных, вам следует рассмотреть возможность использования тегов

для отображения вашей группировки. Это также более приятная вещь с точки зрения доступности.

Хотя стоит отметить, что optgroups работают только для одного уровня иерархии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...