在Asp.NEt中Page_Load()事件加载两次的现象

      最近在用VS2005做WebForm项目时发现很多aspx页面加载的时候page_load()时加载两次,在Page页面上输出两个相同的结果,发现原来是AutoEventWireup属性搞得鬼:

      <%@ Page language="c#" Codebehind="Result.aspx.cs" AutoEventWireup="true" Inherits="test.Result" %>

      解决办法:

      <%@ Page language="c#" Codebehind="Result.aspx.cs" AutoEventWireup="false" Inherits="test.Result" %>

      原因分析: 

      如果   Page   指令的   AutoEventWireup   属性被设置为   true(或者如果缺少此属性,因为它默认为   true),该页框架将自动调用页事件,即   Page_Init   和   Page_Load   方法。在这种情况下,不需要任何显式的   Handles   子句或委托。    
      AutoEventWireup   属性的缺点是它要求页事件处理程序具有特定、可预测的名称。这限制了您在为事件处理程序命名时的灵活性。因此,在   Visual   Studio   中,AutoEventWireup   属性在默认情况下设置为   false,设计器会生成用于将页事件绑定到方法的显式代码。     
     如果将   AutoEventWireup   设置为   true,Visual   Studio   将生成用于绑定事件的代码,页框架将自动基于事件的名称来调用事件。这可能会导致在该页运行时两次调用相同的事件代码。因此,当在   Visual   Studio   中操作时,应尽量使   AutoEventWireup   设置为   false。   

      关于AutoEventWireup详细资料请参考微软MSDN   

转载于:https://www.cnblogs.com/hzb2010/archive/2009/04/03/1428728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值