Делаете что-то, что займет некоторое время в ASP.NET MVC, при этом сообщая пользователю о прогрессе? - PullRequest
1 голос
/ 03 июня 2009

В моем приложении ASP.NET MVC одно из моих действий займет некоторое время - оно запускает последовательность других задач. Я хотел бы сообщить о прогрессе пользователю. Я хочу отображать текст - я не хочу простой индикатор выполнения или счетчик.

Как мне сделать две части? Во-первых, как мне показать прогресс пользователю? Во-вторых, как мне реализовать действие, чтобы прогресс был доступен пользователю?

Ответы [ 3 ]

2 голосов
/ 03 июня 2009

Мои идеи:

Создать метод контроллера, который возвращает JSON:

{
    "Message" : "Processing something serious",
    "Percentage" : "43"
}

Обработка через JS - поместите диапазон сообщения и индикатор в отдельном div, измените его содержимое.

Для индикатора выполнения я бы использовал this one.

1 голос
/ 03 июня 2009

Я немного поиграюсь, и в настоящее время я имею в виду следующее:

  1. В начальном действии контроллера запустите фоновый поток, который выполняет фактическую работу, немедленно вернитесь.
  2. На веб-странице используйте таймер для запроса действия «GetProgress». Это вернет JSON, который можно использовать для обновления веб-страницы. Я буду использовать jQuery.
  3. В действии GetProgress запросить фоновый поток о его прогрессе.

Я, вероятно, передам идентификатор задания в GetProgress и использую его для определения , о фоновом потоке, о котором я спрашиваю.

1 голос
/ 03 июня 2009

Я начал писать ответ, но потом понял, что мне нужно просто перенаправить на ресурс шаблона AJAX Индикатор прогресса . Здесь подробно и кратко обсуждаются проблемы, решения, вопросы юзабилити и другие интересные детали.

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