【转】asp.net中@page指令的属性Inherits、Src、CodeBehind区别
Inherits、Src、CodeBehind
在 ASP.NET 中使用代碼隱藏方法來(lái)設(shè)計(jì)Web 窗體,可使頁(yè)代碼能夠更清晰地從 HTML 內(nèi)容中分離到完全單獨(dú)的文件中。
通常一個(gè) @page 指令如下:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs"?Inherits="WebApplication1.WebForm1" %>
?
其中有三個(gè)屬性(Inherits、Src、CodeBehind)非常容易混淆,下面分別給予說(shuō)明。
Inherits
Inherits 屬性用于定義當(dāng)前 Web 窗體所繼承的代碼隱藏類(該類是 System.Web.UI.Page 的派生類)。
這個(gè) inherits 屬性只用于采用代碼隱藏方式編寫(xiě)的 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 屬性并不互斥。
需要說(shuō)明的是,Visual Studio .NET 并不使用 Src 屬性,這就意味著 Visual Studio .NET 總是指望你用“生成”菜單中的生成操作來(lái)產(chǎn)生已編譯的程序集(通常是編譯成DLL放在\bin目錄中,這樣一來(lái),在發(fā)布應(yīng)用系統(tǒng)時(shí),就可以不用發(fā)布源代碼了),而以后不會(huì)發(fā)生需要?jiǎng)討B(tài)編譯的情況。所以如果你是在 Visual Studio .NET IDE 中開(kāi)發(fā)的話,要時(shí)常注意用“重新生成”功能來(lái)編譯發(fā)生變動(dòng)的類,否則,將會(huì)發(fā)生諸如找不到類呀什么的一系列問(wèn)題。
?
Codebehind
Codebehind 屬性并不是一個(gè)真正的 ASP.NET 屬性,在ASP.NET 文檔中是找不到它的。
它其實(shí)只是一個(gè) Visual Studio .NET 屬性,Visual Studio .NET 就是借用這個(gè)屬性來(lái)很好地跟蹤管理項(xiàng)目中的 Web 窗體和與之相對(duì)的代碼隱藏文件,比如當(dāng)你在設(shè)計(jì)環(huán)境中往 Web 窗體上放入一個(gè)服務(wù)器控件時(shí),Visual Studio .NET 將自動(dòng)找到與該 Web 窗體相對(duì)應(yīng)的代碼隱藏文件,并自動(dòng)插入相關(guān)的代碼。因此,用 Visual Studio .NET 作開(kāi)發(fā)時(shí),不可輕率地將 Codebehind 屬性換成 Src 屬性,他們的功能作用不同。
轉(zhuǎn)載于:https://www.cnblogs.com/dadashazhu/articles/2284757.html
總結(jié)
以上是生活随笔為你收集整理的【转】asp.net中@page指令的属性Inherits、Src、CodeBehind区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Prism4文档翻译(第四章 第一部分)
- 下一篇: ASP.NET MVC 3 Razor基