Inherits、Src、CodeBehind
在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中。
通常一个 @page 指令如下:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false"
Inherits="WebApplication1.WebForm1" %>
其中有三个属性(Inherits、Src、CodeBehind)非常容易混淆,下面分别给予说明。
Inherits
Inherits 属性用于定义当前 Web 窗体所继承的代码隐藏类(该类是 System.Web.UI.Page 的派生类)。
这个 inherits 属性只用于采用代码隐藏方式编写的 Web 窗体,也就是,如果你的代码全都是在 Web 窗体的
<script runat="server"></script> 标签中,就不必用这个属性了。
Src
Src 属性用于指定“代码(隐藏)文件”在文件系统中的位置,以便于 ASP.NET Framework 用 Just-In-Time (JIT)
编译器动态编译 Web 窗体时能够找到它。用 Inherits 指明的类,就是放在这个类代码(隐藏)文件中。
通常 ASP.NET Framework 使用这些类时,首先会到已编译的程序集中查找,
如果找不到就会把在 Src 属性中提供的代码文件重新编译,所以 Src 属性和 Inherits 属性并不互斥。
需要说明的是,Visual Studio .NET 并不使用 Src 属性,
这就意味着 Visual Studio .NET 总是指望你用“生成”菜单中的生成操作来产生已编译的程序集
(通常是编译成DLL放在\bin目录中,这样一来,在发布应用系统时,就可以不用发布源代码了),
而以后不会发生需要动态编译的情况。所以如果你是在 Visual Studio .NET IDE 中开发的话,
要时常注意用“重新生成”功能来编译发生变动的类,否则,将会发生诸如找不到类呀什么的一系列问题。
Codebehind
Codebehind 属性并不是一个真正的 ASP.NET 属性,在ASP.NET 文档中是找不到它的。
它其实只是一个 Visual Studio .NET 属性,
Visual Studio .NET 就是借用这个属性来很好地跟踪管理项目中的 Web 窗体和与之相对的代码隐藏文件,
比如当你在设计环境中往 Web 窗体上放入一个服务器控件时,
Visual Studio .NET 将自动找到与该 Web 窗体相对应的代码隐藏文件,并自动插入相关的代码。
因此,用 Visual Studio .NET 作开发时,不可轻率地将 Codebehind 属性换成 Src 属性,他们的功能作用不同。
分享到:
相关推荐
在ASP.NET中,用户控件(User Control)是一种强大的功能,允许开发者创建可重用的、自定义的UI组件。用户控件可以看作是轻量级的自定义控件,它们结合了多个内置控件的功能,或者实现了特定的业务逻辑,以便在多个...
在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点: q 可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和...
在ASP.NET中,将图片存取到数据库是一个常见的需求,特别是在构建包含用户上传内容的网站时。本示例将向你展示如何实现这一功能,主要涉及.NET Framework、ASP.NET Web应用程序以及数据库操作。 首先,我们需要一个...
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!DOCTYPE html> <title>ASP.NET AJAX Extended HTML Map</title> <asp:...
在ASP.NET中,Ajax技术被广泛用于创建交互性更强、响应速度更快的Web应用程序。Ajax(Asynchronous JavaScript and XML)允许部分网页更新,无需重新加载整个页面,从而提供更好的用户体验。本文将深入探讨两种在ASP...
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="main.aspx.cs" Inherits="LavitaSite.Admin.background.main" %> <!DOCTYPE ...
ASP.NET上的动态标签编辑器Web控件是一种交互式的用户界面元素,它允许用户在网页上动态添加、编辑或删除标签。这种控件通常用于数据分类、关键字输入或自定义注解,极大地提升了用户体验。在本文中,我们将深入探讨...
@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”flush让页面分块逐步呈现.aspx.cs” Inherits=”Web_1.flush让页面分块逐步呈现” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitio
@ Page language=”c#” Codebehind=”Main.aspx.cs” AutoEventWireup=”false” Inherits=”Hr.WebForm1″ %> 上边的这行不要用CodeBehind,这是生成CS文件生成DLL文件后,把Dll放到Bin目录中使用的. 如果没有编译...
### ASP.NET Ext Grid 显示列表实现详解 #### 一、概述 在Web开发中,特别是ASP.NET应用程序中,展示和管理表格数据是非常常见的需求。Ext JS 提供了一个强大的`Ext Grid`组件,可以帮助开发者轻松地在网页上创建...
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="XXXX.WebForm1" %> ``` - `.cs`文件: ```csharp public class WebForm1 : System.Web.UI.Page { protected void ...
<%@ Page language="c#" Codebehind="CheckOut.aspx.cs" AutoEventWireup="false" Inherits="PetShop.Web.CheckOut" EnableSessionState="readonly" enableViewState="False"%> ``` 这段代码注册了两个用户控件,并...
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadImage.aspx.cs" Inherits="YourNamespace.UploadImage" %> <!DOCTYPE html> <asp:Button ID="btnUpload" Text="上传" runat="server" ...
- `@Page`指令:这是ASP.NET Web Forms中的一个关键指令,用于定义页面的编程语言(C#)、母版页文件路径、事件自动绑定(AutoEventWireup)以及页面类的继承(Inherits)。 - `ContentPlaceHolder`:母版页和内容...
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Test_Wap.WebForm1" ContentType="text/vnd.wap.wml"%> <!DOCTYPE wml PUBLIC "-//OPENWAVE....
在ASP.NET Web应用程序中,...1. 将自定义用户控件拖放到ASP.NET Web Form页面上,或者通过`<%@ Register TagPrefix="uc1" TagName="CustomControl" Src="~/App_Controls/CustomControl.ascx" %>`指令注册后,通过`...
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ClientTemplateAndDataViewDemo.aspx.cs" Inherits="CoreEnhancements.AJAX.ClientTemplateAndDataViewDemo" %> <!DOCTYPE ...