Page_Load方法运行两次

时间:2014-05-12 06:23:22

标签: c# asp.net

我使用内置的asp.net Web应用程序Web窗体模板创建了一个VS 2013项目。通过在页面的Page_Load方法中放置一个断点,我可以看到在按F5和出现的页面之间执行两次该方法。为什么?我可以/我应该停止这种行为吗?

抱歉没有提供足够的细节。该代码完全是由VS Exp 2013 for Web生成的完全不受影响的模板代码。

ASPX文件是

<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="mycompanyname.B1WebApp.About" %>

〜/ Site.Master有一个空的Page_Load方法(不确定这是否相关)

背后的代码是

public partial class About : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Boolean Nothing;
    }
}

2 个答案:

答案 0 :(得分:1)

这是asp.net Web表单的一部分,因为只要在页面上使用服务器控件,页面就会回发给自己。它永远是这样的。

您需要检查页面加载:

if(!IsPostBack) 
{  
//Code for first time load 
}
 else 
{ 
// code whenever you have a postback
}

答案 1 :(得分:1)

您可以通过!IsPostBack

避免每次回发的页面加载功能
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Your code here
        }
    }

使用此母版页的用户控件也可以导致页面加载执行两次......