asp.net-mvc - 如何将进度传递到 MVC 页面

标签 asp.net-mvc asp.net-mvc-partialview

我有一个委托(delegate)方法,在 WriteAnObject 上传文件时被称为周期性的。我想使用 args.PercentDone 值更新 MVC 页面中的 div (ProgressUpdate)。我很感激任何想法? 谢谢,

//委托(delegate)方法

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

// Controller

[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>

最佳答案

这是一种在服务器上的操作完成时向用户显示进度的方法。 (需要 JavaScript)

1) 编写一个在服务器上启动进程的操作。此方法应该更新 session 状态中的进度值(以便它特定于用户正在运行的每个 session )。

2) 编写客户端可以调用以返回进度的操作。这将读取 session 状态中的值。通常,此操作将返回一个小 HTML 片段,其中包含填充正确数量的进度条,或者返回一个包含进度值的 JSON 对象。

3) 从客户端进行 jQuery.ajax() 调用,以在操作运行时异步轮询服务器以获取进度并更新 UI。

附加功能: - 取消长时间运行的操作的操作 - 在 Web 应用程序外部运行任务(Azure 有一些关于从 Web 应用程序异步运行任务的出色功能) - 让返回进度的操作也让客户端知道操作是否已完成或取消。

关于asp.net-mvc - 如何将进度传递到 MVC 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867414/

相关文章:

html - 如何使用分部 View 向主视图中定义的表添加行

asp.net-mvc - Controller 不应具有域逻辑。一个人应该如何忠实地遵守这一原则?

c# - 如果在页面底部呈现捆绑脚本,我如何使用动态 JQuery 脚本定义部分 View ?

c# - MVC 将 PartialViewResult 渲染为字符串

jquery - 如何通过mvc进行通知和在线直播

Ajax Post : ASP. NET MVC 操作正在接收空对象

asp.net-mvc - ASP.Net MVC : Html. Display() 用于集合中的对象

C# ASP.NET MVC 5 如何执行原始查询?

asp.net-mvc - 无法设置 SSL 供公众使用。可能的端口问题

css - 在我的 CSS 中使用 Lato 字体 (@font-face)