在视图上显示某些流程进度的最佳方法是什么?

时间:2011-11-21 20:56:39

标签: c# asp.net asp.net-mvc-3 razor

我不知道该怎么做,但我认为这是可能的。我想要做的是在我的视图中显示某个进程(循环)的进度。

我正在使用C#ASP.NET MVC3 / RAZOR

代码示例:

public ActionResult Index()
{
    for (int i = 0; i < 100; i++)
    {
        System.Threading.Thread.Sleep(100); // Simulate...
    }

    return View();
}

在我看来,我只想制作像44/100这样的简单文字。

是否可能,如果是,那么实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

BNL上面的评论是正确的。

  1. 使用任务并行库在另一个线程中启动任务。更新此任务中的任务进度。
  2. 编写一个动作方法,使用ajax每隔几秒轮询一次进度。
  3. 根据进度更新您的用户界面。
  4. 您如何跟踪进度?

    1. 在数据库中创建任务标识符(例如,包含2列的表:guid和进度值)。
    2. 从action方法返回任务标识符值。
    3. 在ajax调用中发送任务标识符,以便告诉服务器为您提供指定任务的进度。
    4. 是的,值得重复:不要在Web服务器线程中运行长任务。运行Windows服务,让它为您运行任务。