设置基于控制器方法的进度条

时间:2016-08-13 06:14:32

标签: jquery ajax asp.net-mvc-4

我有电子邮件发送项目,其中控制器端有一种方法是向2000客户端发送电子邮件。所以我想了解电子邮件的进度,以及控制器的电子邮件ID总数,以查看和更新​​进度条。我怎样才能做到这一点?两者的数量都没有确定,两者都将在提交表格后决定。

是否可以通过发送多个Ajax请求提交表单?

控制器方法

long totalcount = 0;
  long CCount = 0;

 [HttpPost]
 public ActionResult SendMail(SendMailRequest sm) 
  { 
          DataTable dt = new DataTable();
          dt = GetAllEmailIds();
          totalCount = dt.rows.Count;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
               client.send();
               Count++;
            }
  } 



 [HttpGet]
        public string GetCount()
        {
            string message = "";
            message = "completed " + CCount + " out of  " + totalcount + "";
            return message;
        }

在表单提交后的视图中

  updatevalue();

        function updatevalue() {
            $.ajax({
                url: '/Email/GetCount',
                type: "GET",     
                success: function (data) {
                    $('#result').html(data);
                }
            });
            setTimeout(updatevalue(), 1000);
        };

1 个答案:

答案 0 :(得分:0)

它是一个不同的schenario:

但您可以使用的解决方案是:

设置全局私有变量:

private int _mailSent;

在后期操作方法中增加此项。

创建另一个异步返回该变量值的操作,使用对该方法的继续调用并设置进度条。