AutoEventWireup --- 指示是否自动启用页事件。 如果启用事件自动连网,则为 true;否则,为 false。
Codebehind --- 指示后台代码文件。
Inherits --- 继承类
AutoEventWireup属性决定事件句柄怎样连接到控件事件中。当AutoEventWireup设置为true时,ASP.NET决定调用类中的哪一种方法来响应那些在用户与网页的交互中产生的事件。ASP.NET将不必用代理就可以为一个Web控件调用合适的事件句柄,对程序员而言,这样可以无需为事件句柄添加代理。在程序员不是使用Visual Studio因而必须自己添加代码的情况下,这是非常方便的。
当Visual Studio生成一个ASPX文件时,因为Visual Studio为我们生成必要的时间代理,所以将AutoEventWireup设为false。
如果在Visual Studio中将AutoEventWireup设为true,那么一个事件句柄将会被调用两次,一次通过代理,一次是AutoEventWireup的结果。
runat属性,设置为“Server”,说明由服务器来处理表单并生成发送给客户的HTML代码。
同一类型的Web控件可以映射到不同的HTML元素,这取决于客户端的浏览器和Web空间的参数设置。
Page类定义了所请求的网页,位于System.Web.UI名字空间,它包含了为创建基于Web的应用和控件所需的类。
类Page也提供了创建基于Web的应用所需的事件句柄和必要对象。
除了Page类,System.Web.UI还包括Control类。这是一个为所有的Web控件提供一般功能的基类。
ASPX文件和代码后置文件是怎样被用于创建那些发送给客户的网页的呢?首先,类WebTimeTest继承了定义了网页一般功能的Page类。除了继承这些功能以外,WebTimeTest还定义了一些自己特有的功能。
代码后置文件就是定义了这一功能的文件,而ASPX文件定义了GUI。当客户请求一个ASPX文件时,在包含网页的可视化部分(在ASPX文件中定义)和包含网页的逻辑部分(在代码后置文件中定义)的现场后面创建一个类。新类继承自Page。
当网页首次被请求时,这个类被编译并且创建一个实例。这个实例表示网页,它创建了被传送给客户的HTML。由编译过的类创建的组件被放置在项目的Bin目录中。
一旦一个网页实例已经创建,多个用户就可以使用这一实例来访问这个网页——不再需要重新编译。项目仅仅在程序员修改应用程序后才需要重新编译,这些变化由运行时间环境检测,并且项目将被重新编译来反应变化的内容。
最常见错误:
Inherits="xxx" 报错未能加载类型“xxx”。
例1:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
_Default表示Default.aspx文件的Codebehind背后代码文件的类名称,在Default.aspx这个文件上鼠标右键单击,在弹出的菜单中点击查看源代码(Visual Studio环境中),打开的源代码是不是有个Public Class _Default?
再看:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="xxx.Default" %> 报错未能加载类型“xxx.Default”
xxx.Default表示你的这个页面在xxx这个文件中,因为类名不能重复,所以在这个Default上面添加了所在文件夹的名称,来防止重名的。
总之,要保证类名不重复的情况下,前后要一致。
例2:
“/xxx”应用程序中的服务器错误。
分析器错误
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
分析器错误信息: 未能加载类型“XXX.Global”。
源错误:
行 1: <%@ Application Codebehind="Global.asax.cs" Inherits="XXX.Global" %>
|
源文件: c:\inetpub\wwwroot\XXX\global.asax 行: 1
解决方法:
1.修改程序后,如果没有编译通过,修改错误的代码。
.删除原来的bin下面的dll文件(删除该程序生成的dll文件,引用的dll文件不要删除)
在VS.NET中,选择“生成”->“重新生成解决方案”。
然后,重新运行,看看是否成功。
2.如果更改了项目的根命名空间,比如叫xxx.xxxCMS,而当前项目又是在版本管理状态下,那应该用记事本打开Global.asax文件,把原来的修改为xxx.xxxCMS即可。
3.拷贝了一个旧项目,然后把命名空间的根目录改了, 相应的Global.asax.cs的命名空间要做相应的改变。否则会找不到*.global.
4.因为一直是提示未能加载类型,在bin文件夹下也看不到dll文件,所以在vs里把它生成解决方案,如此,bin文件夹下便有了dll文件.然后保存浏览,已经看不到了如下的提示,问题便已解决.