我有一个带有按钮的asp.net网页,当点击它时会调用2个存储过程,然后将SSIS包作为SQL代理作业运行,最后在页面上重新加载数据。这一切都很顺利。
我的问题是,如果使用浏览器刷新按钮刷新页面,它会再次执行按钮单击事件。
如何阻止这种情况发生?
由于 诺勒
答案 0 :(得分:1)
制作两个单独的页面
然后
在第1页的ViewState
上包含一个属性,就像这样。
protected Boolean IsRequestAlreadyProcessed
{
get
{
return Convert.ToBoolean(this.ViewState["IsRequestAlreadyProcessed"]);
}
set
{
this.ViewState["IsRequestAlreadyProcessed"] = value;
}
}
现在在您的第1页按钮点击事件中检查此属性。
protected void yourButton_Click(Object sender, EventArgs e)
{
if (!this.IsRequestAlreadyProcessed)
{
this.IsRequestAlreadyProcessed = true;
//Carry out all your SQL Agent Job operations here...
Response.Redirect("~/ToYourPage2.aspx");
}
}