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

Jquery 基于控制器方法设置进度条,jquery,ajax,asp.net-mvc-4,Jquery,Ajax,Asp.net Mvc 4,我有一个电子邮件发送项目,其中控制器端有一个方法是发送电子邮件到2000客户端。因此,我想获得继续发送的电子邮件数量,以及控制器发送的电子邮件id总数,以查看和更新进度条。我该怎么做?两者的数量均不确定,将在提交表格后决定 提交表单后是否可以发送多个Ajax请求 控制器方法 long totalcount=0 long-CCount=0 [HttpPost] public ActionResult SendMail(SendMailRequest sm) { Da

我有一个电子邮件发送项目,其中控制器端有一个方法是发送电子邮件到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;
        }

这是一个不同的schenario:

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

设置全局专用变量:

private int _mailSent;
在post-action方法中增加该值


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

不,我不知道SingalR我是ASP.NET的新手检查此示例-是的,但如何创建异步返回变量的操作以及如何继续调用该方法现在我通过重复ajax调用来实现,但不起作用您可以像往常一样创建操作,如public ActionResult GetMailSent(){return Json(新{{u mailssent}};}确保在那里放置一个httppost。您可以在视图中的jquery中创建一个请求方法。请参阅上面我编辑的代码,执行相同的操作。首先将其更改为httppost,然后返回一个json对象,其中包含一个带有counts的字符串。如果在邮件发送过程中没有收到计数或计数没有增加,您可以将其保存到db中,然后从db和retur中检索它n相同。如果已解决,请确保检查答案
private int _mailSent;