如何在页面重定向(C#/ASP.Net)后发布消息以确认发送的消息
您好,我刚刚在我的网站上设置了一个方法,从“联系我们”页面发送电子邮件,我想在他们发送电子邮件后清除asp.net表单中的所有电子邮件详细信息,因此我使用了response.redirect来刷新页面。我想显示一条消息或一个弹出窗口来显示消息已发送,但由于页面正在刷新,我试图写入的标签从未被调用。有没有办法解决这个问题,或者有没有办法在不重定向的情况下清除表单?以下是我正在使用的代码:如何在页面重定向(C#/ASP.Net)后发布消息以确认发送的消息,c#,asp.net,smtp,response.redirect,C#,Asp.net,Smtp,Response.redirect,您好,我刚刚在我的网站上设置了一个方法,从“联系我们”页面发送电子邮件,我想在他们发送电子邮件后清除asp.net表单中的所有电子邮件详细信息,因此我使用了response.redirect来刷新页面。我想显示一条消息或一个弹出窗口来显示消息已发送,但由于页面正在刷新,我试图写入的标签从未被调用。有没有办法解决这个问题,或者有没有办法在不重定向的情况下清除表单?以下是我正在使用的代码: protected void SubmitBtn_Click(object sender,EventArgs
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();
}
}
非常感谢您的回复。
重定向是您的问题。您实际上是在刷新页面,之后的任何代码都是无关的。为什么不通过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.
您的标签将随着消息弹出,然后重定向将在几秒钟后发生