版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第 4 章ASP.NET 的網(wǎng)頁代碼模型及生命周期從本章開始,就進入了ASP.NET 應(yīng)用程序開發(fā)的世界。在了解了C#的結(jié)構(gòu),以及面象的概念后,就可以從面件開發(fā)中的一些象的開發(fā)ASP.NET 應(yīng)用程序。在ASP.NET 中,能夠使用面象的和軟,例如封裝、派生、繼承以及高級的設(shè)計模式等。本章首先介紹ASP.NET 中最重要的概念網(wǎng)頁代碼模型。4.1ASP.NET 的網(wǎng)頁代碼模型在 ASP.NET 應(yīng)用程序開發(fā)中,微軟提供了大量的控件,這些控件能夠方便用戶的開發(fā)以及。這些控件具有很強的擴展能力,在開發(fā)過程中無需自己手動編寫。不僅如此,用戶還能夠創(chuàng)建自定義控件進行應(yīng)用程序開發(fā)以擴展現(xiàn)有的服務(wù)器控件的
2、功能。4.1.1創(chuàng)建 ASP.NET在ASP.NET 中,可以創(chuàng)建 ASP.NET和ASP.NET 應(yīng)用程序,ASP.NET的網(wǎng)頁元素包含可視元素和頁面邏輯元素,并不包含designer.cs 文件。而ASP.NET 應(yīng)用程序包含designer.cs 文件。創(chuàng)建ASP.NET,首先需要創(chuàng)建,單擊【文件】按鈕,在下拉菜單中選擇【新建的創(chuàng)建,如圖 4-1 所示?!窟x項,單擊后會彈出框用于ASP.NET圖 4-1 新建ASP.NET在【位置】選項中,旁邊的【下拉菜單】可以按照開發(fā)的需求來寫,一般選擇文件系統(tǒng),地址為本機的本地地址。語言為.NETVisual Basic。創(chuàng)建了 ASP.NET中使用
3、的語言,如果選擇Visual C#,則默認的開發(fā)語言為C#,否則為后,系統(tǒng)會自動創(chuàng)建一個代碼隱藏頁模型頁面 Default.aspx。ASP.NET網(wǎng)頁一般由三部分組成,這三個部分如下所示。可視元素:包括HTML,標(biāo)記,服務(wù)器空間。頁面邏輯元素:包括事件處理程序和代碼。designer.cs 頁文件:用來為頁面的控件做初始化工作,一般只有 ASP.NET 應(yīng)用程序( WebApplication)才有。ASP.NET 頁面中包含兩種代碼模型,一種是單文件頁模型,另一種是代碼隱藏頁模型。這兩個模型的功能完全一樣,都支持控件的拖拽,以及智能的代碼生成。4.1.2單文件頁模型單文件頁模型中的所有代碼
4、,包括控件代碼、事物處理代碼以及HTML 代碼全都包含在.aspx 文件中。編程代碼在script,并使用runat=“server”屬性標(biāo)記。創(chuàng)建一個單文件頁模型,在【文件】按鈕中選擇【新建文件】選項,在彈出框中選擇【W(wǎng)eb 窗體】或在右擊當(dāng)前項目,在下拉菜單中選擇【添加新建項】選項即可創(chuàng)建一個.aspx 頁面,如圖 4-2 所示。圖 4-2 創(chuàng)建單文件頁模型在創(chuàng)建時,去掉【將代碼放在單獨的文件中】復(fù)選框的選擇即可創(chuàng)建單文件頁模型的ASP.NET 文件。創(chuàng)建后文件會自動創(chuàng)建相應(yīng)的HTML 代碼以便頁面的初始化,示例代碼如下所示。95無標(biāo)題頁編譯并運行,即可看到一個空白的頁面被運行了。ASP.
5、NET 單文件頁模型在創(chuàng)建并生成時,開發(fā)人員編寫的類將編譯成程序集,并將該程序集加載到應(yīng)用程序域,并對該頁的類進行實例化后輸出到瀏覽器??梢哉f,.aspx 頁面的代碼也即將會生成一個類,并包含內(nèi)部邏輯。在瀏覽器瀏覽該頁面時,.aspx頁面的類實例化并輸出到瀏覽器,反饋給瀏覽者。ASP.NET 單文件頁模型運行示例圖如圖 4-3 所示。圖 4-3 單文件頁模型4.1.3代碼隱藏頁模型代碼隱藏頁模型與單文件頁模型不同的是,代碼隱藏頁模型將事物處理代碼都存放在 cs 文件中,當(dāng) ASP.NET 網(wǎng)頁運行的時候,ASP.NET 類生成時會先處理 cs 文件中的代碼,再處理.aspx 頁面中的代碼。這種
6、過程被成為代碼分離。代碼分離有一種好處,就是在.aspx 頁面中,開發(fā)可以將頁面直接作為樣式來設(shè)計,即美員也可以設(shè)計.aspx 頁面,而.cs 文件由程序員來完成事務(wù)處理。同時,將ASP.NET 中的頁面樣式代碼和邏輯處理代碼分離能夠讓 變得簡單,同時代碼看上去也非常的優(yōu)雅。在.aspx 頁面中,代碼隱藏頁模型的.aspx 頁面代碼基本上和單文件頁模型的代碼相同,不同的是在 script 標(biāo)記中的單文件頁模型的代碼默認被放在了同名的.cs 文件中,.aspx 文件示例代碼如下所示。96無標(biāo)題頁從上述代碼中可以看出,在頭部的時候,單文件頁模型只包含Language=“C#”,而代碼隱藏頁模型包含
7、了 CodeFile=“Default.aspx.cs”,說明被分離出去處理事物的代碼被定義在 Default.aspx.cs 中,示例代碼如下所示。上述代碼為Default.apx.cs 頁面代碼。從上述代碼可以看出,其格式與類庫、編寫類的格式相同,這也說明了.aspx 頁面允許使用面象的特性,如多態(tài)、繼承等。但是ASP.NET 代碼隱藏頁模型的運行過程比單文件頁模型要復(fù)雜,運行示例圖如圖 4-4 所示。97using System.Linq; using System.Web;using System.Web.Security; using System.Web.UI;using Syst
8、em.Web.UI.HtmlControls;/使用HtmlControlsusing System.Web.UI.WebControls;/使用WebControlsusing System.Web.UI.WebControls.Wrts;/使用Wrtspublic partial class _Default : System.Web.UI.Page/繼承自System.Web.UI.Pageprotected void Page Load(objecder, EventArgs e)圖 4-4 代碼隱藏頁模型上述描述了代碼隱藏類模型的頁面生成模型。當(dāng)頁面被呈現(xiàn)之前,ASP.NET 應(yīng)用程
9、序會解釋并編譯相應(yīng)的cs 文件中的代碼,與此同時,ASP.NET 應(yīng)用程序還會將.aspx 頁面進行編譯并生成.aspx 頁面對應(yīng)的類。生成.aspx 頁面對應(yīng)的類后會將該類與 cs 文件中的類進行協(xié)調(diào)生成新的類,該類會通過 IIS 在用戶瀏覽頁面時呈現(xiàn)在用戶的瀏覽器中。4.1.4創(chuàng)建 ASP.NET Web ApplicationASP.NET編譯成一個 DLL(動態(tài)有一種好處,就是在編譯后,編譯器將整個庫),在更新的時候,只需要更新編譯后的DLL(動態(tài)編譯速度慢,并且類的檢查不徹底。庫)文件即可。但是ASP.NET卻有一個缺點,相比之下,ASP.NET Web Application 不僅
10、加快了速度,只生成一個程序集,而且可以拆分成多個項目進行管理。創(chuàng)建 Application,首先需要新建項目用于開發(fā) Web Application,單擊菜單欄上的【文件 】按鈕,在下拉菜單中選擇【新建項目】選項,在彈出窗口中選擇【ASP.NET 應(yīng)用程序】選項,如圖 4-5所示。圖 4-5 創(chuàng)建ASP.NET 應(yīng)用程序在創(chuàng)建了ASP.NET 應(yīng)用程序后,系統(tǒng)同樣會默認創(chuàng)建一個Default.aspx 頁面,不同的是,多出了一個 Default.aspx.designer.cs,用來初始化頁面控件,一般不需要修改。4.1.5ASP.NET和 ASP.NET 應(yīng)用程序的區(qū)別在 ASP.NET 中
11、,可以創(chuàng)建 ASP.NET和 ASP.NET 應(yīng)用程序,但是 ASP.NET和 ASP.NET應(yīng)用程序開發(fā)過程和編譯過程是有區(qū)別的。ASP.NET 應(yīng)用程序主要有以下特點:可以將ASP.NET 應(yīng)用程序拆分成多個項目以方便開發(fā),管理和可以從項目中和源代碼管理中排除一個文件或項目。支持VSTS 的 Team Build 方便構(gòu)建。可以對編譯前后的名稱,程序集等進行自定義。98對App_GlobalResour的 Resource 強類支持。ASP.NET WebSite 編程模型具有以下特點:動態(tài)編譯該頁面,而不用編譯整個站點。當(dāng)一部分頁面出現(xiàn)錯誤不會影響到其他的頁面或功能。不需要項目文件,可以
12、把一個目錄當(dāng)作一個Web 應(yīng)用來處理。總體來說,ASP.NETASP.NET 應(yīng)用程序適應(yīng)大型的適用于較小的開發(fā),因為其動態(tài)編譯的特點,無需整站編譯。而開發(fā)、等。4.2代碼隱藏頁模型的解釋過程在 ASP.NET 的代碼隱藏頁模型中,一個完整的.aspx 頁面包含兩個頁面,分別是以.aspx 和.cs 文件為后綴的文件,這兩個文件在形成了整個 Web 窗體。在編譯的過程中都被編譯成由項目生成的動態(tài)鏈接庫(.DLL),同時,.aspx 頁面同樣也會編譯。但是與.cs 頁面編譯過程不同的是,當(dāng)瀏覽者第一次瀏覽到.aspx 頁面時,ASP.NET 自動生成該頁的.NET 類文件,并將其編譯成另一個.D
13、LL 文件。當(dāng)瀏覽者再一次瀏覽該頁面的時候,生成的.DLL 就會在服務(wù)器上運行,并響應(yīng)用戶在該頁面上的請求或響應(yīng),ASP.NET 應(yīng)用程序的解釋過程圖如 4-6 所示。圖 4-6 代碼隱藏頁模型頁面的執(zhí)行過程在客戶端瀏覽器該頁面時,瀏覽器會給IIS 發(fā)送請求消息,IIS 則會開始執(zhí)行ASP.NET 編譯過程,如果不存在編譯過后的 DLL 文件,則加載編譯的類并創(chuàng)建對象。當(dāng)創(chuàng)建對象完成,生成創(chuàng)建對象后的代碼并生成一個 ASPX 頁面代碼,該頁面代碼反饋給 IIS,IIS 再反饋成 HTML 頁面的形式給客戶端。994.3代碼隱藏頁模型的事件驅(qū)動處理在傳統(tǒng)的ASP 開發(fā)中,ASP 的事件都是按照網(wǎng)
14、頁的順序來處理的,一般情況下,ASP 頁面的事件都是從上到下處理事件,可以說 ASP 的開發(fā)是一個線性的處理模型。在用戶的瀏覽操作中,每一次用戶的操作都會導(dǎo)致頁面重新被發(fā)送到服務(wù)器。因此,重復(fù)的操作必然導(dǎo)致客戶端和服務(wù)器的往返過程,服務(wù)器必須重新創(chuàng)建頁面,當(dāng)創(chuàng)建頁面后,服務(wù)器再按照原來的從上到下的順序進行事件處理。在ASP.NET 中,通過使用模擬事件驅(qū)動模型的行為代替了 ASP 的線性處理模型。ASP.NET 頁框架模型隱式的為用戶建立了事件和事件處理程序的關(guān)聯(lián)。ASP.NET 讓用戶可以為從瀏覽器傳遞的事件在服務(wù)器代碼中設(shè)置相應(yīng)的處理程序。假設(shè)某個用戶正在瀏覽并與頁面之間產(chǎn)生了某種交互,用
15、戶的操作就會事件,事件通過 HTTP 被傳輸?shù)椒?wù)器。在服務(wù)器中,ASP.NET 框架解釋信息,并觸發(fā)事件與之對應(yīng)的處理程序。該程序可以是.aspx 頁面中的處理程序,也可以是開發(fā)者自定義的類庫,或者 COM組件等。事件驅(qū)動處理如圖 4-7 所示。圖 4-7頁面框架的事件驅(qū)動處理模型上圖則說明了當(dāng)一個瀏覽者通過瀏覽器觸發(fā)ASPX 頁面時,瀏覽器、服務(wù)器和服務(wù)器返回頁的過程 。4.4ASP.NET 客戶端狀態(tài)Web 開發(fā)不像開發(fā),Web 應(yīng)用實際上是沒有狀態(tài)的,這就說明Web 應(yīng)用程序不自動指示序列中的請求是否來自相同的瀏覽器或客戶端,也無法判斷瀏覽器是否一直在瀏覽一個頁面或者一個站點,也無法判
16、斷用戶執(zhí)行了哪個操作并統(tǒng)計用戶的喜好。1004.4.1視圖狀態(tài)從上面的章節(jié)中可以知道,當(dāng)服務(wù)器每次的往返過程,都將銷毀頁面并重新創(chuàng)建新的頁面。如果一個頁面中的信息超出了頁面的生命周期,那么這個頁面中的相關(guān)信息就不存在了。如果注銷了頁面的信息,那么用戶的一些信息可能就不存在了。在 ASP.NET 中,網(wǎng)頁包含視圖狀態(tài)來保存用戶的信息,視圖狀態(tài)在頁面發(fā)回到自身時,跨頁過程和用戶自己的頁面的特定值,視圖狀態(tài)的優(yōu)點如下所示。不需要任何服務(wù)器資源。在默認情況下,對控件啟用狀態(tài)的數(shù)據(jù)進行,不會被破壞。視圖狀態(tài)的值經(jīng)過哈希運算和壓縮保護,安全性更高。視圖狀態(tài)同樣有一些缺點,缺點如下所示。視圖狀態(tài)會影響性能,
17、如果頁面較大較多的值,則性能會有較大的影響。在,移動終端上,可能無法保存視圖狀態(tài)中使用的值。視圖狀態(tài)雖然安全性較高,但是還是有風(fēng)險,如果直接查看頁面代碼,可以看到相應(yīng)代碼。4.4.2控件狀態(tài)ASP.NET 中還提供了控件狀態(tài)屬性作為在服務(wù)器往返過程中自定義控件中的數(shù)據(jù)的方法。在頁面控件中,如果有多個自定義控件使用多個不同的控件來顯示不同的數(shù)據(jù)結(jié)構(gòu),為了讓這些頁面控件能夠在在頁面上協(xié)調(diào)的工作,則需要使用控件狀態(tài)來保護控件,同時,控件狀態(tài)是不能被關(guān)閉的。同樣,控件狀態(tài)也有它的優(yōu)點,優(yōu)點如下所示。與視圖狀態(tài)相同的是,不需要任何服務(wù)器資源??丶顟B(tài)是不能被關(guān)閉的,提供了控件管理的更加可靠的方法??丶?/p>
18、態(tài)具有通用性。4.4.3隱藏域在ASP 中,通常使用隱藏域保存頁面的信息。在 ASP.NET 中,同樣具有隱藏域來保存頁面的信息 ,作為頁面狀態(tài)的一種形式,但是隱藏域的安全性并不高,最好不要在隱藏域保存過多的信息。隱藏域具有以下優(yōu)點。不需要任何服務(wù)器資源。支持廣泛,任何客戶端都支持隱藏域。實現(xiàn)簡單,隱藏域?qū)儆贖TML 控件,無需像服務(wù)器控件那樣有需要編程知識。而隱藏域具有一些不足,如下所示。具有較高的安全隱患。結(jié)構(gòu)簡單。同樣,如果了較多的較大的值,則會導(dǎo)致性能問題。如果隱藏域過多,則在某些客戶端中被。隱藏域?qū)?shù)據(jù)在服務(wù)器上,而不在客戶端。101注意:如果開發(fā)中,頁面的隱藏域過多,這些隱藏域被在
19、服務(wù)器。當(dāng)客戶端瀏覽頁面的時候,會有一止頁面些掃描頁面,。以保證操作系統(tǒng)的安全,如果頁面的隱藏域過多,那么這些可能會禁的某些功能4.4.4在客戶端用戶保存的少量的用戶信息,服務(wù)器可以通過編程的方法獲取用戶信息,信息和頁面請求通常一起發(fā)送到服務(wù)器,服務(wù)器對客戶端傳遞過來的信息做處理。通常保存用戶的登錄狀態(tài)、用戶名等基本信息等等,在后面的章節(jié)會詳細介紹使用 ASP.NET 操作s。4.4.5客戶端狀態(tài)雖然使用某些客戶端狀態(tài)并不使用服務(wù)器資源,但是這些狀態(tài)都具有潛在的安全隱患,如。用戶可以使用來進行用戶信息的獲取,不過使用客戶端狀態(tài)能夠使用客戶端的資源從而提高服務(wù)器性能。使用客戶端狀態(tài),雖然有安全隱
20、患,但是具有良好的編程能力,以及基本的安全知識,能夠較好的解決安全問題,同時也能夠提高服務(wù)器性能。下面小結(jié)了一些客戶端狀態(tài)的優(yōu)缺點。視圖狀態(tài):當(dāng)少量揮發(fā)到自身的頁面的信息時使用??丶顟B(tài):不需要任何服務(wù)器資源,控件狀態(tài)是不能被關(guān)閉的,提供了控件管理的更加可靠和更通用的方法。隱藏域:實現(xiàn)簡單,但是在應(yīng)用程序中會造成一些安全隱患。:實現(xiàn)簡單,同樣也能夠簡單的獲取用戶的信息,但是儲大量的代碼。有大小的限制,不適宜存4.5ASP.NET 頁面生命周期ASP.NET 頁面運行時,也同類的對象一樣,有自己的生命周期。ASP.NET 頁面運行時,ASP.NET頁面將經(jīng)歷一個生命周期,在生命周期內(nèi),該頁面將執(zhí)
21、行一系列的步驟,包括控件的初始化,控件的實例化,還原狀態(tài)和 狀態(tài)等,以及通過IIS 反饋給用戶呈現(xiàn)成HTML。ASP.NET 頁面生命周期是 ASP.NET 中非常重要的概念,了解 ASP.NET 頁面的生命周期,就能夠在合適的生命周期內(nèi)編寫代碼,執(zhí)行事務(wù)。同樣,熟練掌握ASP.NET 頁面的生命周期,可以開發(fā)高效的自定義控件。ASP.NET 生命周期通常情況下需要經(jīng)歷幾個階段,這幾個階段如下所示。頁請求:頁請求發(fā)生在頁生命周期開始之前。當(dāng)用戶請求一個頁面,ASP.NET 將確定是否需要分析或者編譯該頁面,或者是否可以在不運行頁的情況下直接請求緩存響應(yīng)客戶端。開始:發(fā)生了請求后,頁面就進入了開
22、始階段。在該階段,頁面將確定請求是發(fā)回請求還是新的客戶端請求,并設(shè)置IstBack 屬性。初始化:在頁面開始后,進入了初始化階段。初始化期間,頁面可以使用服務(wù)器控件,并為每個服務(wù)器控件進行初始化。加載:頁面加載控件。驗證:調(diào)用所有的驗證程序控件的Vailidate 方法,來設(shè)置各個驗證程序控件和頁的屬性。102回發(fā)事件:如果是回發(fā)請求,則調(diào)用所有事件處理的程序。呈現(xiàn):在呈現(xiàn)期間,視圖狀態(tài)被保存并呈現(xiàn)到頁。卸載:完全呈現(xiàn)頁面后,將頁面發(fā)送到客戶端并準備丟棄時,將調(diào)用卸載。4.6ASP.NET 生命周期中的事件在頁面周期的每個階段,頁面將可運行用戶代碼進行處理事件。對于控件產(chǎn)生的事件,通過聲明的方
23、式執(zhí)行代碼,并將事件處理程序綁定到事件。不僅如此,事件還支持自動事件連接,最常用的就是 Page_Load 事件了,除了Page_Load 事件以外,還有Page_Init 等其他事件,本節(jié)將會介紹此類事件。4.6.1頁面加載事件(Page_PreInit)每當(dāng)頁面被發(fā)送到服務(wù)器時,頁面就會重新被加載,啟動 Page_PreInit 事件,執(zhí)行 Page_PreInit 事件代碼塊。當(dāng)需要對頁面中的控件進行初始化時,則需要使用此類事件,示例代碼如下所示。在上述代碼中,當(dāng)觸發(fā)了Page_PreInit 事件時,就會執(zhí)行該事件的代碼,上述代碼將Lable1 的初始文本值設(shè)置為“OK”。Page_P
24、reInit 事件能夠讓用戶在頁面處理中,能夠讓服務(wù)器加載時只執(zhí)行一次而當(dāng)網(wǎng)頁被返回給客戶端時不被執(zhí)行。在Page_PreInit 中可以使用IstBack 來實現(xiàn),當(dāng)網(wǎng)頁第一次加載時 IstBack 屬性為 false,當(dāng)頁面再次被加載時,IstBack 屬性將會被設(shè)置為 true。IstBack 屬性的使用能夠影響到應(yīng)用程序的性能。4.6.2頁面加載事件(Page_Init)Page_Init 事件與Page_PreInit 事件基本相同,區(qū)別在于 Page_Init 并不能保證完全加載各個控件。雖然在 Page_Init 事件中,依舊可以頁面中的各個空間,但是當(dāng)頁面回送時,Page_In
25、it 依然執(zhí)行所有的代碼并且不能通過IstBack 來執(zhí)行某些代碼,示例代碼如下所示。103protected void Page_Init(objecder, EventArgs e)/Page_Init 事件if (!IstBack)/判斷是否第一次加載Label1.Text = “OK”;/將成功信息賦值給elseLabel1.Text = “IstBack”;/將回傳的值賦值給protected void Page_PreInit(objecder, EventArgs e)/Page_PreInit 事件Label1.Text = “OK”;/賦值4.6.3頁面載入事件(Page_L
26、oad)大多數(shù)初學(xué)者會認為Page_Load 事件是當(dāng)頁面第一次觸發(fā)的事件,其實不然,在ASP.NET 頁生命周期內(nèi),Page_Load 遠遠不是第一次觸發(fā)的事件,通常情況下,ASP.NET 事件順序如下所示。Page_Init()。Load ViewSe。3. Loostback data。Page_Load()。Handle control events。Page_PreRender()。Page_Render()。Unload event。9. Dise method called。Page_Load 事件是在網(wǎng)頁加載的時候一定會被執(zhí)行的事件。在Page_Load 事件中,一般都需要使用
27、IstBack 來判斷用戶是否進行了操作,因為IstBack 指示該頁是否正為響應(yīng)客戶端回發(fā)而加載,或者它是否正被首次加載和,示例代碼如下所示。上述代碼使用了Page_Load 事件,在頁面被創(chuàng)建時,系統(tǒng)會自動在代碼隱藏頁模型的頁面中增加此方法。當(dāng)用戶執(zhí)行了操作,頁面響應(yīng)了客戶端回發(fā),則IstBack 為 true,于是執(zhí)行 else 中的操作。4.6.4頁面卸載事件(Page_Unload)在頁面被執(zhí)行完畢后,可以通過Page_Unload 事件用來執(zhí)行頁面卸載時的清除工作,當(dāng)頁面被卸載時,執(zhí)行此事件。以下情況會觸發(fā)Page_Unload 事件。頁面被關(guān)閉。數(shù)據(jù)庫連接被關(guān)閉。對象被關(guān)閉。完成
28、日志或者其他的程序請求。4.6.5頁面指令頁面指令用來通知編譯器在編譯頁面時做出的特殊處理。當(dāng)編譯器處理ASP.NET 應(yīng)用程序時,可以通過這些特殊指令要求編譯器做特殊處理,例如緩存、使用命名空間等。當(dāng)需要執(zhí)行頁面指令時,通104protected void Page_Load(objecder, EventArgs e)/Page_Load 事件if (!IstBack)Label1.Text = “OK”;/第一次執(zhí)行的代碼塊elseLabel1.Text = “IstBack”;/如果用戶提交表單等常的做法是將頁面指令包括在文件的頭部,示例代碼如下所示。PUBLIC “-/W3C/DTD
29、 XHTML 1.0 Transitional/EN” “”上述代碼中,就使用了Page 頁面指令來定義ASP.NET 頁面分析器和編譯器使用的特定頁的屬性。當(dāng)代碼隱藏頁模型的頁面被創(chuàng)建時,系統(tǒng)會自動增加Page 頁面指令。ASP.NET 頁面支持多個頁面指令,常用的頁面指令如下所示。 Page:定義ASP.NET 頁分析器和編譯器使用的頁特定(.aspx 文件)屬性,可以編寫為。 Control:定義 ASP.NET 頁分析器和編譯器使用的用戶控件(.ascx 文件)特定的屬性。該指令只能為用戶控件配置??梢跃帉憺?。 Import:將命名空間顯示導(dǎo)入到頁中,使所導(dǎo)入名空間的所有類和接口可用戶
30、該頁。導(dǎo)入名空間可以是.NET Framework 類庫或用戶定義Import namespace=“value” %。名空間的一部分??梢跃帉憺? Implements:提示當(dāng)前頁或用戶控件實現(xiàn)制定的.NET Framework 接口??梢跃帉憺?。 Reference:以件進行動態(tài)編譯和的方式指示,應(yīng)該根據(jù)在其中此指令的頁對另一個用戶控件或頁源文??梢跃帉憺?。的方式空間 ASP.NET 頁或頁中包含的用戶控件的輸出緩存策略??梢詀che Duration=“#ofseconds” Location=“Any | Cnt | Downstream | Server | Outpache:以編寫
31、為 Assembly:在編譯過程中將程序集到當(dāng)前頁,以使程序集的所有類和接口都可用在該頁上??梢跃帉憺榛虻姆绞?。 Register:將別名與命名空間以及類名關(guān)聯(lián)起來,以便在自定義服務(wù)器控件語法中使用簡明的表 示 法 。 可 以 編 寫 為 或 的方式。4.7ASP.NET文件類型在ASP.NET 中包含諸多的文件類型,這些類型的文件由ASP.NET 支持和管理,而除了這些文件以外,其他的文件都由 IIS 托管。使用 VS2008 能夠創(chuàng)建大部分可以使用ASP.NET 托管運行的程序。同時 ,可以將文件類型到應(yīng)用程序。當(dāng)需要偽靜態(tài)時,很可能需要將.html 后綴托管到IIS使用應(yīng)用程序中的應(yīng)用擴
32、展,因為默認情況下ASP.NET 不會處理HTML 的操作。技巧:現(xiàn)在的構(gòu)架中,生成靜態(tài)是一種降低壓力的一種很好的解決方案。在某些情況下,服務(wù)器可能需要偽靜態(tài)支持,就是將.aspx 頁面后綴顯式成.html 后綴,讓搜索引擎能夠更好的搜錄。1ASP.NET 管理的文件類型ASP.NET 管理的文件類型能夠在 ASP.NET 應(yīng)用程序中被 ASP.NET 應(yīng)用程序的不同模塊進行105!DOCTYPE html和調(diào)用,這些文件可能是用戶能夠直接類型如表 4-1 所示。的,也有可能是用戶無法直接的。ASP.NET 管理的文件表 4-1ASP.NET管理的文件類型注意:ASP.NET管理的文件類型到
33、IIS 的 Aspnet_isall。106文件類型保存位置描述.asax根目錄。Global.asax 文件。包含 HttpApplication 對象的派生代碼,用于重新展示 Application 對象。.ascx根目錄或子目錄。可重用的自定義 Web 控件。.ashx根目錄或子目錄。處理器文件。包含實現(xiàn) IHttpHandler 接口的代碼,用于處理輸入請求。.asmx根目錄或子目錄。XML Web Servi文件。包含由 SOAP 提供給其他 Web應(yīng)用的類對象和功能。.aspx根目錄或子目錄。ASP.NET Web 窗體。包含 Web 控件和其他業(yè)務(wù)邏輯。.axd根目錄。視圖文件。
34、通常是 Trace.axd。.browserApp_Browsers 目錄。瀏覽器定義文件。用于識別客戶端瀏覽器的可用特征。.cd根目錄或子目錄。類圖文件。.compiin 目錄。定位于適當(dāng)匯編集中的預(yù)編譯文件。可執(zhí)行文件(.aspx,.ascx, master,theme)預(yù)編譯后放在 Bin 目錄。.config根目錄或子目錄。Web.config 配置文件。包含用于配置 ASP.NET 若干特征的XML 元素集。.cs,.jsl,vbApp_Code 目錄。有些是 ASP.NET的代碼分離文件,位于與 Web 頁面相同的目錄。運行時被編譯的類對象源代碼。類對象可以是 HTTP 模塊,HT
35、TP 處理器,或 ASP.NET 頁面的代碼分離文件。.csproj, vbproj, vjsprojVisual Studio 工程目錄。Visual Studio 客戶工程文件。.disco,.vsdiscoApp_WebReferen目錄。XML Web ServiDiscovery 文件。用于定位可用 Web Servi。.dsdgm, dsprototype根目錄或子目錄。分布式服務(wù)圖表(DSD)文件??商砑拥?Visual Studio 方案中,為反向引擎提供消耗 Web Servi時的交互性圖表。.dllBin 目錄。已編譯類庫文件。作為替代,可將類對象源代碼保存到App_Cod
36、e 目錄。.licx,.webinfo根目錄或子目錄。協(xié)議文件。協(xié)議有助于保護控件開發(fā)者的知識產(chǎn)權(quán),并對控件用戶的使用權(quán)進行驗證。master根目錄或子目錄。模板文件定義 Web 頁面的布局,并在其他頁面中得到。mdb,.ldbApp_Data 目錄。Acs 數(shù)據(jù)庫文件。mdfApp_Data 目錄。SQLServer 數(shù)據(jù)庫文件。msgx,.svc根目錄或子目錄。Indigo Messaging Framework(MFx)服務(wù)文件。rem根目錄或子目錄。處理器文件。resourApp_GlobalResour或App_LocalResour目錄。資源文件。包含圖像,本地化文本,或其他數(shù)據(jù)的資源串。resxApp_GlobalResour或App_LocalResour目錄。資源文件。包含圖像,本地化文本,或其他數(shù)據(jù)的資源串。.sdm,.sdmDocume nt根目錄或子目錄。系統(tǒng)定義模型(SDM)文件。.sitemap根目錄。地圖文件。包含的結(jié)構(gòu)。ASP.NET 通過默認的網(wǎng)站地圖提供者,簡化導(dǎo)航控件對地圖文件的使用。.skinApp_Themes 目錄。皮
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市商業(yè)圈門面房租賃及商業(yè)運營合同4篇
- 2025年度離婚后子女贍養(yǎng)費調(diào)整起訴合同
- 二零二五年度充電樁充電站安全教育與培訓(xùn)合同2篇
- 二零二五年度農(nóng)產(chǎn)品電商平臺技術(shù)開發(fā)合同11篇
- 2025年度企業(yè)內(nèi)部培訓(xùn)講師選拔與培訓(xùn)合同3篇
- 2025年度大型活動派遣安保人員合同范本4篇
- 2025年度木工雕刻藝術(shù)作品制作勞務(wù)合同范本3篇
- 2025年度個人對企業(yè)發(fā)放的循環(huán)借款合同范本4篇
- 2025年度個人股份轉(zhuǎn)讓與員工激勵計劃合同2篇
- 二零二五年度農(nóng)業(yè)用地土地租賃與農(nóng)業(yè)節(jié)水灌溉技術(shù)合作合同4篇
- 2024-2025學(xué)年山東省濰坊市高一上冊1月期末考試數(shù)學(xué)檢測試題(附解析)
- 江蘇省揚州市蔣王小學(xué)2023~2024年五年級上學(xué)期英語期末試卷(含答案無聽力原文無音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機構(gòu)監(jiān)督
- 記錄片21世紀禁愛指南
- 腰椎間盤的診斷證明書
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)七 裂變傳播
- 單級倒立擺系統(tǒng)建模與控制器設(shè)計
評論
0/150
提交評論