如何在页面重定向后发布消息以确认已发送的消息(C#/ASP.Net)
本文关键字:消息 确认 ASP Net 重定向 布消息 | 更新日期: 2023-09-27 18:20:52
嗨,我刚刚在我的网站上设置了一个从"联系我们"页面发送电子邮件的方法,我想在他们发送电子邮件后清除所有电子邮件详细信息的asp.net表单,所以我使用了response.redirect来刷新页面。我想显示一条消息或弹出窗口来显示消息已经发送,但由于页面正在刷新,我试图写这封信的标签永远不会被调用。有没有办法绕过这个问题,或者有没有办法在不重定向的情况下清除表单?这是我正在使用的代码:
protected void SubmitBtn_Click(object sender,EventArgs e)
{
MailMessage mailObj = new MailMessage(
EmailTxt.Text, "xxxxx@xxxxx.com", SubjectTxt.Text, MessageTxt.Text);
SmtpClient SMTPServer = new SmtpClient("localhost");
try
{
SMTPServer.Send(mailObj);
Response.Redirect("ContactMe.aspx");
base.OnLoad(e);
MessageLbl.Text = "Email Sent SucessFully.";
}
catch (Exception ex)
{
MessageLbl.Text = ex.ToString();
}
}
非常感谢提前
Response.Redirect
是您的问题。您有效地刷新了页面,之后的任何代码都无关紧要。为什么不通过clode(即myTextBox.Text = string.Empty
等)清除表单,然后设置消息文本?
try
{
SMTPServer.Send(mailObj);
// Clear email form
Control1.Text = string.Empty;
Control2.Text = string.Empty;
// etc...
MessageLbl.Text = "Email Sent SucessFully.";
}
catch (Exception ex)
{
MessageLbl.Text = ex.ToString();
}
如果你不想让你的用户留在电子邮件页面上(假设你想在他们发送电子邮件后把他们带到其他地方),你可以使用:
Response.AddHeader("REFRESH","3;URL=yourURL.aspx");
代替
Response.redirect.
你的标签会弹出消息,几秒钟后重定向就会发生。