第3章 ASPNET40網(wǎng)站結(jié)構(gòu)與頁面框架_第1頁
第3章 ASPNET40網(wǎng)站結(jié)構(gòu)與頁面框架_第2頁
第3章 ASPNET40網(wǎng)站結(jié)構(gòu)與頁面框架_第3頁
第3章 ASPNET40網(wǎng)站結(jié)構(gòu)與頁面框架_第4頁
第3章 ASPNET40網(wǎng)站結(jié)構(gòu)與頁面框架_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Web應(yīng)用程序是一種以網(wǎng)頁作為編程和用戶界面的應(yīng)用程序,ASP.NET網(wǎng)站便是一種Web應(yīng)用程序,它是所有文件、頁面、模塊、處理程序以及可執(zhí)行代碼的總稱。3.1ASP.NET網(wǎng)站結(jié)構(gòu)

一個(gè)ASP.NET網(wǎng)站的主要由Web窗體頁、代碼隱藏文件、用戶控件文件、Web服務(wù)、web.config配置文件、Global.asax文件以及其它組件組成。3.1.1文件類型

ASP.NET網(wǎng)站包含多種類型的文件,具體描述如下:(1).aspx文件:Web窗體頁文件,即頁面文件,它是ASP.NET網(wǎng)站設(shè)計(jì)的基礎(chǔ)。用于頁面的顯示邏輯,即用戶界面、可視化組件或可視元素。(2).cs文件:代碼隱藏文件,和網(wǎng)站的開發(fā)語言相關(guān)聯(lián),用于頁面的業(yè)務(wù)邏輯,即編程邏輯或者代碼。使用該文件能夠?qū)崿F(xiàn)用戶界面與代碼邏輯的分離。(3).ascx文件:Web用戶控件文件,用于定義可重復(fù)使用的自定義用戶控件。(4).asmx文件:Web服務(wù)文件,用于提供一系列方法以供其它應(yīng)用程序進(jìn)行調(diào)用。(5)web.config文件:是一個(gè)基于XML的ASP.NET配置文件,該文件中主要包含數(shù)據(jù)庫連接、狀態(tài)管理、內(nèi)存管理以及安全設(shè)置等ASP.NET相關(guān)的配置信息。(6)Global.asax文件:網(wǎng)站全局文件,用于處理應(yīng)用程序級(jí)事件的可選文件。(7).master文件:母版頁文件,用于定義ASP.NET網(wǎng)站中頁面布局。(8)其他文件:如資源文件、CSS文件、純HTML文件、XML文件以及數(shù)據(jù)庫文件等。3.1.2文件夾結(jié)構(gòu)

ASP.NET中除了包含開發(fā)者創(chuàng)建的普通文件夾外,還包含有默認(rèn)的文件夾,用于存放ASP.NET網(wǎng)站中不同類型的資源和文件。在操作過程中某些默認(rèn)的文件夾會(huì)自動(dòng)添加,例如在創(chuàng)建一個(gè)類文件時(shí),會(huì)提示是否將該類文件放置到App_Code默認(rèn)文件夾中,如圖2-19所示,如果選擇“是”,則系統(tǒng)會(huì)自動(dòng)創(chuàng)建App_Code文件夾并將新建的類文件保存到該文件夾中。在VisualStudio2010中查看這些默認(rèn)文件夾的方法為:在“解決方案資源管理器”中,右擊網(wǎng)站名稱,在彈出的快捷菜單中選擇“添加ASP.NET文件夾”項(xiàng),其子項(xiàng)中便包含了這幾個(gè)文件夾。3.2ASP.NET頁面框架

一個(gè)ASP.NET頁面主要包含頁面指令、頁面語法、頁面生命周期以及頁面事件等項(xiàng)。3.2.1ASP.NET頁面的代碼模型

ASP.NET提供了兩種用于管理可視元素和代碼的模型:?jiǎn)挝募撃P秃痛a隱藏頁模型。每個(gè)ASP.NET頁面需要完成兩部分功能:頁面的顯示邏輯和頁面的業(yè)務(wù)邏輯。頁面的顯示邏輯用于管理HTML標(biāo)記、服務(wù)器控件、靜態(tài)文本以及頁面布局等;頁面的業(yè)務(wù)是指進(jìn)行邏輯處理的ASP.NET代碼,主要用于和網(wǎng)頁進(jìn)行交互。單文件頁模型是指在一個(gè).aspx文件中既包含顯示邏輯部分,又包含業(yè)務(wù)邏輯部分,即將這兩個(gè)部分放置在同一個(gè)文件中;而在代碼隱藏頁模型中,顯示邏輯部分和業(yè)務(wù)邏輯部分分別放置在兩個(gè)不同的文件中。.aspx文件主要放置用于顯示邏輯的代碼,而單獨(dú)設(shè)置一個(gè)代碼隱藏文件(如C#中代碼隱藏文件是一個(gè)以.cs為擴(kuò)展名的文件)放置操作業(yè)務(wù)邏輯的代碼。在代碼隱藏頁模型中,.aspx文件稱之為頁面文件,而.cs文件則稱之為代碼隱藏文件。1.代碼隱藏頁模型2.單文件頁模型3.2.2ASP.NET頁面指令

ASP.NET頁面文件中的前面幾行,一般是諸如<%@……%>的代碼,稱之為頁面指令,如上面“1-2.aspx”文件中的Page指令。頁面指令用于為相應(yīng)頁面指定頁屬性和配置信息,每個(gè)頁面指令都包含一個(gè)或多個(gè)屬性與值,各屬性之間使用空格進(jìn)行間隔。頁面指令的基本語法格式如下:<%@指令名稱屬性1="值"……%>3.2.2ASP.NET頁面指令

1.Page指令Page指令是ASP.NET頁面中最常用的屬性,每個(gè)頁面只能擁有一個(gè)Page指令,主要用于定義ASP.NET頁面分析器和編譯器使用的特定屬性,一般放置在ASP.NET頁面的頂端。2.其他的頁面指令除了Page指令外,ASP.NET還提供了一些其他頁面指令。3.2.3ASP.NET頁面語法

在ASP.NET單文件頁模型中,將顯示邏輯和業(yè)務(wù)邏輯兩個(gè)部分放置在同一個(gè).aspx文件中,此時(shí)用于業(yè)務(wù)邏輯的代碼模塊分為兩種:代碼聲明塊和代碼呈現(xiàn)塊。1.代碼聲明塊在.aspx文件中以<scriptrunat="server">標(biāo)簽開頭,以</script>標(biāo)簽結(jié)束的代碼模塊,稱之為代碼聲明塊。一般在代碼聲明塊中聲明函數(shù)與事件處理程序,而后在頁面中調(diào)用所需的函數(shù)或者事件處理程序。3.2.3ASP.NET頁面語法

2.代碼呈現(xiàn)塊代碼呈現(xiàn)塊是指在頁面文件中插入以“<%”標(biāo)簽開頭,以“%>”標(biāo)簽結(jié)束的代碼模塊,用于定義當(dāng)頁面呈現(xiàn)時(shí)所要執(zhí)行的內(nèi)嵌代碼或者內(nèi)嵌表達(dá)式。代碼呈現(xiàn)塊可以放置在頁面文件中合理位置的任何地方,通常用于數(shù)據(jù)綁定、屬性輸出和調(diào)用方法等操作。代碼呈現(xiàn)塊通常有兩種基本形式:內(nèi)嵌代碼和內(nèi)嵌表達(dá)式。(1)內(nèi)嵌代碼定義內(nèi)嵌代碼的基本語法格式為:<%內(nèi)嵌代碼%>主要用于定義獨(dú)立的控制流程塊或者代碼塊。(2)內(nèi)嵌表達(dá)式定義內(nèi)嵌表達(dá)式的基本語法格式為:<%=內(nèi)嵌表達(dá)式%>主要用于定義并執(zhí)行表達(dá)式的值,并將該值顯示出來。3.2.3ASP.NET頁面語法

3.頁面代碼注釋注釋是一段被編譯器忽略的代碼,僅作為讀者閱讀程序時(shí)的參考,幫助讀者理解程序的功能和含義,是增強(qiáng)程序可讀性的一個(gè)必不可少的手段。ASP.NET頁面代碼注釋主要分為HTML注釋和服務(wù)器端注釋兩種。(1)HTML注釋標(biāo)記HTML注釋標(biāo)記是以“<!--”標(biāo)簽開頭,以“-->”標(biāo)簽結(jié)束。一個(gè)HTML注釋可以注釋多行。在【例3-1】中使用了HTML注釋,其使用形式如下:

<!--以下完成逐次增大輸出7次“頁面語法學(xué)習(xí)”語句-->(2)服務(wù)器端注釋標(biāo)記服務(wù)器端注釋標(biāo)記是以“<%--”標(biāo)簽開頭,以“--%>”標(biāo)簽結(jié)束。該注釋可以添加到ASP.NET頁面文件的任何地方(除了<script>代碼塊內(nèi)部),注釋之間的任何內(nèi)容,無論是顯示邏輯代碼,還是業(yè)務(wù)邏輯代碼,都不會(huì)在服務(wù)器上進(jìn)行處理且不會(huì)呈現(xiàn)在結(jié)果頁面上。3.2.4ASP.NET頁面生命周期和事件

1.頁面生命周期ASP.NET頁面在運(yùn)行時(shí)將經(jīng)歷一個(gè)生命周期,在該生命周期中將執(zhí)行一系列處理步驟,主要包括頁面初始化、加載、呈現(xiàn)、卸載等。了解頁面生命周期過程非常重要,因?yàn)檫@樣就可以使用戶在生命周期的合適階段編寫代碼,從而到達(dá)預(yù)期的設(shè)計(jì)效果。3.2.4ASP.NET頁面生命周期和事件

1.頁面生命周期常規(guī)頁面的生命周期階段描述如下:(1)頁面請(qǐng)求:頁面請(qǐng)求發(fā)生在頁面生命周期開始之前。當(dāng)用戶請(qǐng)求頁面時(shí),ASP.NET將確定是否需要分析和編譯頁面(從而開始頁面的生命周期),或者是否可以在不運(yùn)行頁面的情況下發(fā)送頁面的緩存版本以進(jìn)行響應(yīng)。(2)頁面開始:在頁面初始化開始前發(fā)生。在頁面開始階段,將設(shè)置頁面屬性,同時(shí)還將確定頁面請(qǐng)求是新請(qǐng)求還是回傳請(qǐng)求,并設(shè)置頁面IsPostBack屬性。IsPostBack屬性是一個(gè)邏輯值,如果其值為false,表示頁面是首次被加載和訪問;如果其值為true,表示頁面是為響應(yīng)客戶端回傳而再次加載的。(3)頁面初始化:在該階段,可以使用頁面中的控件并且任何主題都將應(yīng)用于頁面。如果當(dāng)前請(qǐng)求是回傳請(qǐng)求,則回傳數(shù)據(jù)尚未加載,并且控件屬性值尚未還原為視圖狀態(tài)中的值。3.2.4ASP.NET頁面生命周期和事件

1.頁面生命周期(4)頁面加載:在該階段,將引發(fā)頁面的Load事件。如果當(dāng)前請(qǐng)求是回傳請(qǐng)求,則將使用從視圖狀態(tài)和控件狀態(tài)恢復(fù)的信息來加載控件屬性。(5)頁面驗(yàn)證:在該階段,將調(diào)用所有驗(yàn)證控件的Validate方法,以用于設(shè)置各個(gè)驗(yàn)證控件和頁面的IsValid屬性。IsValid屬性是一個(gè)邏輯值,表示頁面驗(yàn)證是否成功。(6)回傳請(qǐng)求事件處理:如果當(dāng)前請(qǐng)求是回傳請(qǐng)求,則將調(diào)用所有事件處理程序。(7)頁面呈現(xiàn):在頁面呈現(xiàn)之前,頁面和所有控件視圖狀態(tài)將被保存。在該階段,頁面會(huì)針對(duì)每個(gè)控件調(diào)用Render方法,它會(huì)提供一個(gè)文本編寫器,用于將控件的輸出寫入頁面Response屬性的OutputStream中。(8)頁面卸載:在該階段,將引發(fā)頁面的Unload事件,對(duì)頁面使用過的資源進(jìn)行最后的清除處理。3.2.4ASP.NET頁面生命周期和事件

2.頁面事件從頁面生命周期中可以看出,在整個(gè)生命周期階段會(huì)貫穿著許多頁面事件,如PreInit、Init、Load和Unload事件等。當(dāng)這些事件被引發(fā)時(shí),會(huì)自動(dòng)調(diào)用其事件處理程序來響應(yīng)這些事件,以完成特定的頁面功能。ASP.NET頁面支持自動(dòng)事件鏈接,即當(dāng)頁面事件發(fā)生時(shí),ASP.NET會(huì)自動(dòng)查找具有對(duì)應(yīng)名稱的事件處理程序,并自動(dòng)執(zhí)行該事件處理程序。只要將頁面指令@Page的AutoEventWireup屬性設(shè)置為true(該屬性默認(rèn)值為true),就能實(shí)現(xiàn)上述自動(dòng)關(guān)聯(lián)。如當(dāng)頁面事件Load被引發(fā)時(shí),會(huì)自動(dòng)執(zhí)行該事件處理程序Page_Load中的代碼。3.2.4ASP.NET頁面生命周期和事件

2.頁面事件常用的頁面事件描述如下。(1)PreInit事件:在頁面初始化開始時(shí)發(fā)生,其執(zhí)行的操作主要有:檢查IsPostBack屬性值來判斷頁面是否是首次被加載,動(dòng)態(tài)設(shè)置主控頁面,動(dòng)態(tài)設(shè)置Theme屬性,創(chuàng)建或重新創(chuàng)建動(dòng)態(tài)控件,讀取或者設(shè)置配置文件的屬性值。(2)Init事件:在所有控件都已初始化并且已應(yīng)用所有外觀設(shè)置后發(fā)生,用來讀取或者初始化控件屬性。(3)Load事件:在頁面加載階段,當(dāng)Web服務(wù)器控件加載到Page對(duì)象中時(shí)發(fā)生,功能是使用OnLoad方法來設(shè)置控件中的屬性并建立數(shù)據(jù)庫連接。(4)PreRender事件:在加載Control對(duì)象之后并且頁面呈現(xiàn)之前發(fā)生,其執(zhí)行的操作主要有:Page對(duì)象會(huì)針對(duì)每個(gè)控件和頁面調(diào)用EnsureChildControls,對(duì)頁面和頁面中控件內(nèi)容進(jìn)行最后更改。頁面上的每個(gè)控件都會(huì)引發(fā)PreRender事件。(5)Unload事件:在頁面卸載階段,當(dāng)Web服務(wù)器控件從內(nèi)存中卸載時(shí)發(fā)生。該事件首先針對(duì)每個(gè)控件發(fā)生,而后再針對(duì)該頁面發(fā)生。使用該事件可對(duì)頁面和特定控件進(jìn)行最后清理工作,如關(guān)閉打開的數(shù)據(jù)庫連接等操作。3.3web.config配置文件

在ASP.NET中提供了一種便捷地保存網(wǎng)站配置信息的辦法,那就是利用配置文件,配置文件的文件后綴一般是.config,可以實(shí)現(xiàn)各種功能的配置,如身份驗(yàn)證模式、自定義錯(cuò)誤、編譯器選項(xiàng)、頁緩存、調(diào)試和跟蹤選項(xiàng)等。ASP.NET提供了兩種配置文件:machine.config和web.config。3.3web.config配置文件

1.machine.config配置文件machine.config文件用于存儲(chǔ)服務(wù)器的配置信息,這個(gè)文件描述了所有ASP.NET網(wǎng)站所用的默認(rèn)設(shè)置。該文件默認(rèn)安裝在“[硬盤盤符名]:\WINDOWS\Microsoft.NET\Framework\對(duì)應(yīng).NETFramework版本號(hào)標(biāo)識(shí)的目錄\Config\”目錄中。machine.config文件是一個(gè)XML格式的文本文件。3.3web.config配置文件

2.web.config配置文件web.config文件也是一個(gè)XML文本文件,它用來存儲(chǔ)ASP.NET網(wǎng)站的配置信息,可以出現(xiàn)在網(wǎng)站的每一個(gè)目錄中。在發(fā)布網(wǎng)站時(shí)web.config文件并不編譯進(jìn)dll文件中。如果將來客戶端發(fā)生了變化,僅僅需要用記事本打開web.config文件編輯相關(guān)設(shè)置就可以重新正常使用,非常方便。當(dāng)通過ASP.NET新建一個(gè)網(wǎng)站后,默認(rèn)情況下會(huì)在根目錄中自動(dòng)創(chuàng)建一個(gè)web.config文件,其內(nèi)容包括初始的配置設(shè)置,所有的子目錄都將繼承這個(gè)文件的配置設(shè)置。如果想修改子目錄的配置設(shè)置,可以在該子

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論