Дождаться ввода пользователя - PullRequest
1 голос
/ 23 марта 2009

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

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

Ответы [ 2 ]

0 голосов
/ 18 августа 2010

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

Вы можете обойти эту проблему, поддерживая связь клиентского компьютера с сервером. Например, проверьте наличие новых событий в событии Tick элемента управления <asp:Timer>. Это решение является практичным, если ваша цель состоит, например, в том, чтобы иметь панель обновлений или что-то, что говорит, что сервер на XX% завершил обработку запроса пользователя, и запрашивает ввод данных пользователем после завершения обработки.

0 голосов
/ 23 марта 2009

Если я правильно понимаю, я думаю, что проблема в том, что вы пытаетесь решить проблему с помощью очень простой системы, основанной на событиях. Что вам нужно сделать, так это создать собственную (очень простую) систему рабочих процессов для такой задачи, а также попытаться отделить некоторую внутреннюю логику от обработки пользовательского интерфейса (для этого идеально подойдет среда ASP.NET MVC, хотя Я вижу, что вы используете WebForms, что, тем не менее, не является большой проблемой). Теперь этот «рабочий процесс» не обязательно должен быть сложным. Начните с разбивки действий, выполняемых вашим приложением, на некую блок-схему. Если вы видите довольно простые зависимости, то это может быть просто вопросом реализации базового автомата. В качестве общего указателя на работу с состояниями в веб-приложениях (всех видов: приложение, сеанс, представление) прочитайте некоторые ссылки на этой странице . Боюсь, я не могу предоставить вам что-то более конкретное из того, что вы описали (возможно, я упускаю что-то очевидное, однако). Если вы хотите уточнить задачи, которые должен выполнять ваш веб-сайт / веб-приложение, я мог бы привести несколько примеров кода, но я подозреваю, что простое решение этой проблемы аналитически / с точки зрения потока должно дать вам хорошее решение. .

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