Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.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# 页面加载时调用的onclick函数_C#_Asp.net_Onclick - Fatal编程技术网

C# 页面加载时调用的onclick函数

C# 页面加载时调用的onclick函数,c#,asp.net,onclick,C#,Asp.net,Onclick,我是ASP/C编程新手: 我创建了一个asp:button,如下所示: <asp:button ID="CreateItem" ClientIDMode="Static" OnClick="btnSave_Click" runat="server" Text="SAVE"> </asp:button> 我注意到,当我点击我的按钮后刷新页面时,这个函数正在被调用。为了验证,我运行了调试器并在btnSave\u Click函数中设置了

我是ASP/C编程新手:

我创建了一个
asp:button
,如下所示:

<asp:button
    ID="CreateItem"
    ClientIDMode="Static"
    OnClick="btnSave_Click"
    runat="server"
    Text="SAVE">
</asp:button>

我注意到,当我点击我的按钮后刷新页面时,这个函数正在被调用。为了验证,我运行了调试器并在
btnSave\u Click
函数中设置了一个断点,并在刷新页面时验证了它确实进入了函数中。我做错了什么?

单击按钮后,页面刷新时会调用它,因为原始按钮的单击导致表单被发布。之后刷新页面时,浏览器只需重新发布表单数据,从而再次调用回调函数

为了避免这种情况,您只需在地址栏中输入url或突出显示url,然后按enter键,它将视为页面加载

编辑:未完全理解您的要求。为了避免在用户单击“刷新”时发生这种情况,您可以按照评论中提到的Oded进行操作,并在发布后重新定向:

从链接:

protected void SaveClicked(object sender, EventArgs e)
{
    //save changes to database here

    //Redirect if all went well
    Response.Redirect("~/yourpage.aspx");
}
您必须使用以避免此问题。刷新页面时,上次请求(get或Post)再次提交到服务器

解决方案:在单击事件中使用响应。在代码之后重定向

btnSave_Click(object sender, EventArgs e)
{
    //Code here to create an Item   
    Response.Redirect(@"~\page.aspx"); 
}

单击按钮后是否刷新?@Oded是。我正要把它编辑到我的帖子里,这就是为什么。浏览器正在尝试重新创建相同的请求,因此服务器将其理解为触发按钮单击的请求。您需要转到地址栏并按enter键才能发出新请求。这是在第一次加载页面时发生的,还是仅在按refresh时发生的?在浏览器上无法完成。处理这种情况的通常方法是(用户发布,服务器重定向(处理后)到浏览器随后获得的另一个页面)有没有办法防止这种情况发生?
btnSave_Click(object sender, EventArgs e)
{
    //Code here to create an Item   
    Response.Redirect(@"~\page.aspx"); 
}