我使用内置的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;
}
}
答案 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
}
}
使用此母版页的用户控件也可以导致页面加载执行两次......