2012-05-23 5 views
2

Каков наилучший способ решить проблему с ShowDialog в webgui?ShowDialog в WebGui не ждет ответа

У меня есть две формы. MainForm i LogonForm. Нагрузка на главную страницу MainForm Я хочу показать LogonForm (через ShowDialog), чтобы пользователь мог подключиться к db. И когда результат в порядке, остальная часть основной формы будет загружаться.

Но в webgui ShowDialog работает по-разному, как в WinForms. И после показа LogonFrom он не ждет ответа (так что ответ не работает).

Как это можно решить?

ответ

2

Из-за характера веб-сайтов весь метод загрузки должен быть завершен до того, как клиент может отправить что-либо. Теоретически вы можете построить всю страницу, скрыть все содержимое, а затем показать его после успешного входа в систему, но это все равно потребует, чтобы вся информация о странице была отправлена ​​клиенту, и любой умеренно продуманный пользователь смогут просмотреть все содержимое, если захотят.

Что вам нужно сделать, так это не генерировать ничего на странице под диалоговом окне, и когда пользователь нажимает кнопку «отправить» (или что-то еще) на всплывающее окно входа в систему, вы должны отправить новый запрос на сервер (скорее чем пытаться обработать его на стороне клиента), в котором вы аутентифицируете пользователя, и, при необходимости, перенаправляете их на домашнюю страницу.

Теперь обычно сайты будут иметь отдельную страницу входа, которая отправит вас на обычную страницу. Если вы хотите иметь всплывающее окно, которое вы можете, но это будет просто всплывающее окно поверх пустого сайта, который перенаправляет на совершенно новую страницу без поп (при успешном входе в систему).

Веб-среды по своей сути отличаются от настольных приложений, и для вас это требует значительного сдвига парадигмы в качестве программиста. Решение - это больше, чем просто «как заблокировать загрузку формы до тех пор, пока всплывающее окно не завершится», поскольку блокировка загрузки формы означает, что пользователь никогда не видит вещь (что приводит к тупиковой ситуации).

Смежные вопросы