標籤:
Inherits、Src、CodeBehind
在 ASP.NET 中使用程式碼後置方法來設計Web Form,可使頁代碼能夠更清晰地從 HTML 內容中分離到完全單獨的檔案中。
通常一個 @page 指令如下:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
其中有三個屬性(Inherits、Src、CodeBehind)非常容易混淆,下面分別給予說明。
Inherits
Inherits 屬性用於定義當前 Web Form所繼承的程式碼後置類別(該類是 System.Web.UI.Page 的衍生類別)。 這個 inherits 屬性只用於採用程式碼後置方式編寫的 Web Form,也就是,如果你的代碼全都是在 Web Form的<script runat="server"></script> 標籤中,就不必用這個屬性了。
Src
Src 屬性用於指定“代碼(隱藏)檔案”在檔案系統中的位置,以便於 ASP.NET Framework 用 Just-In-Time (JIT)編譯器動態編譯 Web Form時能夠找到它。用 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 Form和與之相對的程式碼後置檔案,比如當你在設計環境中往 Web Form上放入一個伺服器控制項時,Visual Studio .NET 將自動找到與該 Web Form相對應的程式碼後置檔案,並自動插入相關的代碼。因此,用 Visual Studio .NET 作開發時,不可輕率地將 Codebehind 屬性換成 Src 屬性,他們的功能作用不同。
【轉】asp.net中@page指令的屬性Inherits、Src、CodeBehind區別