我正在使用Twilio使用ASP.NET网络应用发送短信。按下提交按钮后我正在使用重定向后发送消息。 当第二页完全加载时,我希望每次发送邮件时更新客户端,并显示结果和收件人。这将需要异步,避免页面刷新或回发。每次方法循环并返回结果和收件人时,处理客户端更新的最佳方法是什么?我想在UI中附加收件人以显示谁正在接收邮件。与此类似:
成功送到John Doe
成功送到Elvis Pressley
发送给Grace Hopper时发生了问题
foreach (var recipient in recipients)
{
SendMessage(recipient);
}
public string SendMessage(Recipient recipient)
{
// I want to update the client with either of these return statements
// every time the method is called in the loop.
if (twilioMessage.Send(recipient.PhoneNumber, message)
{
return "Successfully sent to " + recipient.Name;
}
else
{
return "There was a problem sending to " + recipient.Name;
}
}
答案 0 :(得分:1)
对于包含for循环的方法,它应该有一个IEnumerable返回类型,你应该使用关键字" yield"。您的代码看起来像这样:
public IEnumerable<string> DoMyThing()
{
foreach (var recipient in recipients)
{
yield return SendMessage(recipient);
}
}
然后当你打电话给#34; DoMyThing()&#34;每次移动到下一个元素时返回一个IEnumerable,执行返回到函数,下一条消息将尝试发送,你将收到结果,你可以用它做一件事。
至于如何将这些信息传回客户端,UpdatePanel可能是您最好的选择。