我有电子邮件发送项目,其中控制器端有一种方法是向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);
};
答案 0 :(得分:0)
它是一个不同的schenario:
但您可以使用的解决方案是:
设置全局私有变量:
private int _mailSent;
在后期操作方法中增加此项。
创建另一个异步返回该变量值的操作,使用对该方法的继续调用并设置进度条。