C# 在刷新页面时防止重新提交
我已经创建了一个电子邮件网站表单,用户在其中输入他们的姓名、电子邮件和消息,然后提交一个按钮发送。一旦发送电子邮件,页面上的lblResults将声明“谢谢”。我想要实现的是,如果页面被更改、关闭或刷新,lblResults将返回“”。我能够使这项工作,但问题是,当我刷新,它会重新发送相同的电子邮件 以下是“我的代码隐藏”的代码:C# 在刷新页面时防止重新提交,c#,asp.net,html,email,page-refresh,C#,Asp.net,Html,Email,Page Refresh,我已经创建了一个电子邮件网站表单,用户在其中输入他们的姓名、电子邮件和消息,然后提交一个按钮发送。一旦发送电子邮件,页面上的lblResults将声明“谢谢”。我想要实现的是,如果页面被更改、关闭或刷新,lblResults将返回“”。我能够使这项工作,但问题是,当我刷新,它会重新发送相同的电子邮件 以下是“我的代码隐藏”的代码: 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 使用System.Web.UI; 使
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用System.IO;
使用System.Net.Mail;
公共部分类联系人:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
会话[“ClickedLink”]=“联系人”;
如果(!IsPostBack)
Session[“Check_Page_Refresh”]=DateTime.Now.ToString();
}
受保护的无效页面\u预呈现(对象发送方,事件参数e)
{
ViewState[“检查页面刷新”]=会话[“检查页面刷新”];
}
受保护的无效BTN发送\单击(对象发送方,事件参数e)
{
如果(第页有效)
{
字符串文件名=Server.MapPath(“~/App_Data/Contact.txt”);
字符串mailBody=File.ReadAllText(文件名);
mailBody=mailBody.Replace(“##Name###”,txtName.Text);
mailBody=mailBody.Replace(“#######”,txtEmail.Text);
mailBody=mailBody.Replace(“##Message##”,txtMessage.Text);
MailMessage myMessage=新建MailMessage();
myMessage.Subject=“来自网站的响应”;
myMessage.Body=mailBody;
myMessage.From=新邮件地址(“intern2@gmail.com“,”发件人姓名“);
myMessage.To.Add(新邮件地址(“intern2@gmail.com“,”接收方名称“);
myMessage.ReplyToList.Add(新邮件地址(txtEmail.Text));
SmtpClient mySmtpClient=新的SmtpClient();
mySmtpClient.Send(myMessage);
txtName.Text=“”;
txtEmail.Text=“”;
txtMessage.Text=“”;
}
if(ViewState[“检查页面刷新”].ToString()=会话[“检查页面刷新”].ToString())
{
Session[“Check_Page_Refresh”]=DateTime.Now.ToString();
lblResults.Text=“谢谢”;
}
其他的
{
lblResults.Text=“”;
}
}
}
请注意,我还没有学习JS,所以如果可能的话,重点将放在HTML5、CSS3、ASP.NET或C#上。提前谢谢。任何建议都会有帮助 处理这种情况的模式称为。 基本上,您不会使用相同的Url进行响应,因此不会发生重复的回发。相反,用户发布表单,而
POST
响应重定向到GET
错误方式:
更好的方法:
处理这种情况的模式称为。 基本上,您不会使用相同的Url进行响应,因此不会发生重复的回发。相反,用户发布表单,而
POST
响应重定向到GET
错误方式:
更好的方法:
处理这种情况的模式称为。 基本上,您不会使用相同的Url进行响应,因此不会发生重复的回发。相反,用户发布表单,而
POST
响应重定向到GET
错误方式:
更好的方法:
处理这种情况的模式称为。 基本上,您不会使用相同的Url进行响应,因此不会发生重复的回发。相反,用户发布表单,而
POST
响应重定向到GET
错误方式:
更好的方法: