我有一些jQuery调用一些服务器端代码作为计数器来计算发送的电子邮件数量,问题是即使jquery调用服务器端代码,计数器永远不会更新,只显示最终计数。
任何人都可以发现我做错了什么。
$(document).ready(function() {
var sendFunction = function() {
$.post("/path/to/server",
function(data) {
if (data !== "-1") {
$("#progressSend").html("<p class=\"text-success\">Sent " + data + " emails</p>");
setTimeout(window.sendFunction, 500);
} else {
$("#progressSend").hide();
}
});
};
})
我在MVC控制器中的服务器端代码
int currentCount = SendMailingListSmtp.PollingCounter;
message = currentCount.ToString();
return Json(message, JsonRequestBehavior.AllowGet);
和我用来实际计算发送的电子邮件数量的代码,这是在foreach循环中,但是省略了。
int counter = 0;
using (var smtp = new SmtpClient()) {
smtp.UseDefaultCredentials = false;
var credential = new NetworkCredential {
UserName = smtpUsername,
Password = smtpPassword
};
smtp.Credentials = credential;
smtp.Host = smtpHost;
smtp.Port = Convert.ToInt32(smtpPort);
//smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
smtp.PickupDirectoryLocation = "C:\\Users\\\\Desktop\\Customers\\\\PickUp\\";
smtp.EnableSsl = false;
smtp.Send(emailMessage);
counter++;
PollingCounter = counter;
}