Как передать прогресс на страницу MVC - PullRequest
3 голосов
/ 06 октября 2010

У меня есть метод делегата, который называется периодическим, когда WritingAnObject загружает файл.Я хотел бы обновить div (ProgressUpdate) на моей странице MVC со значением args.PercentDone.Я ценю любую идею?Спасибо,

// метод делегата

private void displayProgress(object sender, ProgressArgs args)
{
            //Console.WriteLine(args.PercentDone); //I want to display args.PercentDone in the page
}

// Контроллер

[HttpPost]
public ActionResult WritingAnObject(MyViewModel bovModel)
{
    //DoSomeStuff which is cause calling displayProgress

    return RedirectToAction("ListingSomeInfo", "testpart");
}

// Просмотр

<%using (Html.BeginForm("WritingAnObject", "testpart", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {%>   

    <%:Html.TextBox("catname") %>
    <input type="file" id="fileupload" name="fileupload" />
    <input type="submit" value="Upload" />
    <%} %>


<div id= “ProgressUpdate”</div>

1 Ответ

0 голосов
/ 18 февраля 2011

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

1) Напишите действие, которое запускает процесс на сервере.Этот метод должен обновлять значение прогресса в состоянии сеанса (так, чтобы оно было специфичным для каждого сеанса, который запускает пользователь).

2) Напишите действие, которое клиент может вызвать для возврата прогресса.Это будет читать значение в состоянии сеанса.Обычно это действие возвращает небольшой фрагмент HTML, содержащий индикатор выполнения, заполненный до нужного количества, или объект JSON, содержащий значение процесса.

3) В клиенте выполните вызов jQuery.ajax ().для асинхронного опроса сервера на предмет прогресса во время выполнения операции и обновления пользовательского интерфейса.

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

...