asp.net继续在page_load中调用函数

时间:2015-04-08 09:31:55

标签: c# asp.net .net

我有一个表单(mainpage.aspx),其上有一个名为'取消'的按钮。这是按钮的代码:

<asp:LinkButton ID="btnCancel" runat="server" Text="Cancel" CssClass="btn btn-default" OnClick="btnCancel_Click" />

和被调用函数

protected void btnCancel_Click(object sender, EventArgs e)
    {
        Response.Redirect("EventList.aspx");
    }

正如您所看到的,按钮的作用很简单。只需转到另一页。但似乎在这里并没有发生。每次单击“取消”按钮时,首先会尝试加载代码

Response.Redirect("EventList.aspx");

但不知怎的,它将尝试执行以下代码:

if (hdnEventId.Value != "" && hdnEventId.Value != "0")
            {
                LoadEvent();
}

我知道这是因为我在Response.Redirect上放了一个断点(&#34; EventList.aspx&#34;);然后我进入上面的代码

顺便说一句,上面的代码位于

protected void Page_Load(object sender, EventArgs e)

在mainpage.aspx.cs文件中

1 个答案:

答案 0 :(得分:1)

这是因为Page_Load任何回发时被调用,而您实际上是通过点击取消进行回发。解决方案是将非回发特定代码包装在IsPostBack检查中:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (hdnEventId.Value != "" && hdnEventId.Value != "0")
        {
            LoadEvent();
        }
    }
}