asp.net中@page指令的属性Inherits、Src、CodeBehind区别
Inherits、Src、CodeBehind
在 ASP.NET 中使用代碼隱藏方法來設(shè)計(jì)Web 窗體,可使頁代碼能夠更清晰地從 HTML 內(nèi)容中分離到完全單獨(dú)的文件中。
通常一個(gè) @page 指令如下:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs"?Inherits="WebApplication1.WebForm1" %>
?
其中有三個(gè)屬性(Inherits、Src、CodeBehind)非常容易混淆,下面分別給予說明。
Inherits
Inherits 屬性用于定義當(dāng)前 Web 窗體所繼承的代碼隱藏類(該類是 System.Web.UI.Page 的派生類)。
這個(gè) inherits 屬性只用于采用代碼隱藏方式編寫的 Web 窗體,也就是,如果你的代碼全都是在 Web 窗體的<script runat="server"></script> 標(biāo)簽中,就不必用這個(gè)屬性了。
?
Src
Src 屬性用于指定“代碼(隱藏)文件”在文件系統(tǒng)中的位置,以便于 ASP.NET Framework 用 Just-In-Time (JIT)編譯器動(dòng)態(tài)編譯 Web 窗體時(shí)能夠找到它。用 Inherits 指明的類,就是放在這個(gè)類代碼(隱藏)文件中。
通常 ASP.NET Framework 使用這些類時(shí),首先會(huì)到已編譯的程序集中查找,
如果找不到就會(huì)把在 Src 屬性中提供的代碼文件重新編譯,所以 Src 屬性和 Inherits 屬性并不互斥。
需要說明的是,Visual Studio .NET 并不使用 Src 屬性,這就意味著 Visual Studio .NET 總是指望你用“生成”菜單中的生成操作來產(chǎn)生已編譯的程序集(通常是編譯成DLL放在\bin目錄中,這樣一來,在發(fā)布應(yīng)用系統(tǒng)時(shí),就可以不用發(fā)布源代碼了),而以后不會(huì)發(fā)生需要?jiǎng)討B(tài)編譯的情況。所以如果你是在 Visual Studio .NET IDE 中開發(fā)的話,要時(shí)常注意用“重新生成”功能來編譯發(fā)生變動(dòng)的類,否則,將會(huì)發(fā)生諸如找不到類呀什么的一系列問題。
?
Codebehind
Codebehind 屬性并不是一個(gè)真正的 ASP.NET 屬性,在ASP.NET 文檔中是找不到它的。
它其實(shí)只是一個(gè) Visual Studio .NET 屬性,Visual Studio .NET 就是借用這個(gè)屬性來很好地跟蹤管理項(xiàng)目中的 Web 窗體和與之相對的代碼隱藏文件,比如當(dāng)你在設(shè)計(jì)環(huán)境中往 Web 窗體上放入一個(gè)服務(wù)器控件時(shí),Visual Studio .NET 將自動(dòng)找到與該 Web 窗體相對應(yīng)的代碼隱藏文件,并自動(dòng)插入相關(guān)的代碼。因此,用 Visual Studio .NET 作開發(fā)時(shí),不可輕率地將 Codebehind 屬性換成 Src 屬性,他們的功能作用不同。
總結(jié)
以上是生活随笔為你收集整理的asp.net中@page指令的属性Inherits、Src、CodeBehind区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS 2012 NuGet错误
- 下一篇: java的知识点30——设计模式