-2
SmtpClient.SendAsync()調用不會像SmtpClient.Send()那樣返回結果,但會繼續並且無法在視圖中顯示結果。那麼,如何在這裏掛鉤回調函數,獲取發送郵件結果/錯誤並將其顯示在視圖中?如何在asp.net MVC視圖中顯示來自SmtpClient.SendAsync()的實際結果?
謝謝。
SmtpClient.SendAsync()調用不會像SmtpClient.Send()那樣返回結果,但會繼續並且無法在視圖中顯示結果。那麼,如何在這裏掛鉤回調函數,獲取發送郵件結果/錯誤並將其顯示在視圖中?如何在asp.net MVC視圖中顯示來自SmtpClient.SendAsync()的實際結果?
謝謝。
你有兩個選擇:
一)呼叫SmtpClient.Send()
代替。
b)由異步控制器調用SmtpClient.SendAsync()
它:
public class HomeController : AsynController
{
[HttpPost]
public void IndexAsync()
{
SmtpClient client = new SmtpClient();
client.SendCompleted += (s,e) =>
{
AsyncManager.Parameters["exception"] = e.Error;
AsyncManager.OutstandingOperations.Decrement();
};
AsyncManager.OutstandingOperations.Increment();
client.Send(GetMessage());
}
public void IndexCompleted(Exception exception)
{
if (exception != null)
{
ModelState.AddError("", "Email send failed");
return View();
}
else
{
return Redirect("Complete");
}
}
}
謝謝,我會研究了B)選項。 – Alexander