初学ASP.NET就试了试手,先用.net2003自动生成了一个页面,然后照书上的例子写了如下的代码 <@ Page language=c# AutoEventWireup="false" Inherits="Chapter3.ch21" %> <html> <script language=c# runat=server> void Page_Load(object sender, EventArgs e) { lblMessage.Text="a HTML Contorl"; } </script> <body> <form runat=server> <asp:label id=lblMessage runat=server /> </form> </body> </html> 运行后结果什么都不显示,怎么回事,然后我又调试了很久,还是什么都不显示。没办法,我采用了我的究级大法了,一点一点的删代码,看那里出了问题,当把AutoEventWireup="false"删掉后,一运行,终于有字符出现了(盼星星、盼月亮)。AutoEventWireup是什么意思,对该代码有什么影响了。我查了一下msdn AutoEventWireup 指示页的事件是否自动连网。如果启用事件自动连网,则为 true;否则为 false。 自动连网,这是什么意思,不明白,我又去google上搜了一下,查到了一个简单明白的回答: 如果 Page 指令的 AutoEventWireup 属性被设置为 true(或者如果缺少此属性,因为它默认为 true),该页框架将自动调用页事件,即 Page_Init 和 Page_Load 方法。在这种情况下,不需要任何显式的 Handles 子句或委托。
怪不得我得页面没有任何得显示,书上的例子也没错,书上的page指令是这样写的 <@ Page language="c#" Debug="true" %> 而我没有写该段代码,而直接使用了.net自动生成的代码(自动生成的将有AutoEventWireup="false"),因此导致了页面没有输出结果 |