asp.net Inherits、Src、CodeBehind区别
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 属性,他们的功能作用不同。
相关文章
- 【原创】开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式
- 【ASP.NET】session与cookie的比较
- ASP.NET WebApi 基于分布式Session方式实现Token签名认证
- 《ASP.NET MVC4 WEB编程》学习笔记------ViewBag、ViewData和TempData的使用和区别
- 《ASP.NET MVC4 WEB编程》学习笔记------.net mvc实现原理ActionResult/View
- ASP.NET中IHttpHandler与IHttpModule的区别(带样例说明)
- ASP.NET中IHttpHandler与IHttpModule的区别(带样例说明)
- Asp.Net MVC3.0网站统计登录认证的在线人数
- 重新整理 .net core 实践篇————依赖注入应用之援军[四]
- ASP.NET MVC案例——————拦截器
- discuz !NT 3.5 论坛整合 .net 网站用户登录,退出
- ASP.NET MVC 基于角色的权限控制系统的示例教程
- 《ASP.NET Core 6框架揭秘》勘误
- ASP.NET Core应用基本编程模式[5]:如何放置你的初始化代码
- [ASP.NET Core 3框架揭秘] 依赖注入[8]:服务实例的生命周期
- 学习ASP.NET Core, 怎能不了解请求处理管道[3]: 自定义一个服务器感受一下管道是如何监听、接收和响应请求的
- ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事
- ASP.NET Web Forms - DataList 控件
- ASP.NET MVC (五、HttpClient接口解析)
- ASP.NET Core 中间件 中间件(Middleware)和过滤器(Filter)的区别
- asp.net MVC 数据的验证
- asp.net core 常见知识点
- 【.Net实用方法总结】 整理并总结System.IO中BinaryWriter类及其方法介绍
- 关于ASP.net开启身份验证时集成的托管管道模式下不适用的 ASP.NET 设置