Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在刷新页面时防止重新提交_C#_Asp.net_Html_Email_Page Refresh - Fatal编程技术网

C# 在刷新页面时防止重新提交

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; 使

我已经创建了一个电子邮件网站表单,用户在其中输入他们的姓名、电子邮件和消息,然后提交一个按钮发送。一旦发送电子邮件,页面上的lblResults将声明“谢谢”。我想要实现的是,如果页面被更改、关闭或刷新,lblResults将返回“”。我能够使这项工作,但问题是,当我刷新,它会重新发送相同的电子邮件

以下是“我的代码隐藏”的代码:

使用系统;
使用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

错误方式:

更好的方法: