Я разработал подобные экраны раньше, и asp.net действительно мешает делать что-либо, кроме постбэка после каждого выбора, поэтому это мало что значит.
Это не столько вопрос шаблонов проектирования, сколько контрактов на уровень обслуживания. Насколько отзывчивым должен быть сайт? На каком типе связи вы находитесь? Будут ли пользователи точно знать, какие выпадающие списки они хотели бы сделать, или они потратят некоторое время на просмотр? Должна ли форма быть удобной для мобильных устройств?
Это вопросы, которые влияют на ваш дизайн. Позвольте мне объяснить.
Есть две вещи, которые вы можете сделать здесь. Как всегда, на самом деле вы, вероятно, выберете гибридный подход, но крайности:
- Каждый выбор вызывает обратную передачу. Запрос обрабатывается путем запроса службы для следующего набора параметров и перестройки страницы с новыми заполненными параметрами. Очевидно, это не особенно быстро и не упрощено, но оно является наиболее надежным и кроссплатформенным.
- Когда страница загружается, она содержит в javascript структуру, отображающую все параметры, которые будут заполнять раскрывающиеся списки. У вас будет только один постбэк в конце. Очевидно, что это очень быстро, но не способствует созданию огромных списков, не очень переносимо и создает некоторые трудности, если вам нужна какая-либо продвинутая логика в цепочке выбора.
Возможно, хорошим промежуточным звеном может стать обработка JavaScript как своего рода кэша первого уровня, а сервера - как кэша второго уровня. Вы добавили на страницу наиболее часто выбираемые страны / штаты, но в случае промаха вы запускаете постбэк ajax, чтобы получить больше данных. Конечно, это гораздо больше работы для вас.
Так что да. Надеюсь, что это помогло