使用 SMTPClient.SendAsync 在后台发送邮件。创建一个事件处理程序以捕获发送邮件的回调何时完成,然后隐藏您的微调器。
例如
// Code to show your spinning circle goes here
client.SendCompleted += new
SendCompletedEventHandler(SendCompletedCallback);
...
private static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
// Code to hide your spinning circle goes here!
}
这是一个使用 javascript 显示图像的工作示例,然后将其隐藏在后面的代码中。不需要发送异步。(省略错误处理)
sendmail.aspx 页面:
<body>
<form id="form1" runat="server">
<div>
From: <asp:TextBox ID="txtFrom" runat="server"></asp:TextBox><br />
To: <asp:TextBox ID="txtTo" runat="server"></asp:TextBox>
</div>
<div id="spinner_div">
<asp:Image ID="imgSpinner" runat="server" ImageUrl="~/Images/ajax-loader.gif"></asp:Image>
</div>
<input type="button" onclick="document.getElementById('imgSpinner').style.display = ''; document.forms[0].submit();" value="Send Mail" />
</form>
</body>
发送邮件.aspx.cs
public partial class Sendmail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
imgSpinner.Attributes.Add("style", "display:none");
if (IsPostBack)
{
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Send(new System.Net.Mail.MailMessage(txtFrom.Text, txtTo.Text));
}
}
}