一、概述
ASP.NET 提供了完整的伺服器端物件模型,可以在運行期間使用。ASP.NET 可以在其環境中把頁面上的所有控制項作為對象來訪問。在頁面上使用控制項功能,產生 HTML 內容的 ASP.NET 通常稱為 Web Form。
基本上,Web Form上控制項的狀態資訊(包括在文字框中輸入的資訊、下拉式清單中的選項等)儲存在隱藏的 viewstate 欄位中,這個欄位是伺服器產生的頁面的一部分,並傳送給使用者。後續的操作稱為會送(postback)。
二、ASP.NET Web Form
● 保留檔案夾 App_Date,包含資料檔案,例如 XML檔案或資料庫檔案。
● 在 ASP.NET 頁面中,只有一個伺服器端<form>元素。
● runat="server" 表示表單的處理將在伺服器上進行,必須具備,否則表單不會執行任何操作。
● 頂部的 <@% Page %> 標記,定義了頁面特性。
2.1、流程
.aspx 布局(HTML)和ASP.NET 代碼。
.aspx.cs 用於定製表單操作的代碼。
先行編譯網站流程:
● ASP.NET 處理器執行頁面,確定對象建立,以執行個體化頁面物件模型。
● 動態建立一個基類,包括頁面上的控制項成員和這件控制項的事件處理常式(例如按鈕單擊事件)。
● 頁面代碼檔案與這個基類合并,構成完整的物件模型。
● 編譯所有代碼,並告訴緩衝起來。
● 產生 HTML,返回給使用者。
2.2、ASP.NET 中常見的系統對象
Page 對象:頁面自身的方式。
Request 對象:封裝了由用戶端產生的 HTTP 要求的細節(參數、屬性和資料)。
● QueryStrings 屬性收集了 Get 請求發送的資料。
● From 屬性收集了 Post 請求發送的資料。
● ServerVariable(環境變數)集合中包含伺服器和用戶端的系統資訊。在 Page 指令裡添加屬性 Trace="True" 可以追蹤詳細的環境變數資訊。
● Params 集合包含了上三種方式的集合。
Response 對象:響應返回到 HTTP 用戶端的輸出。
● Write() 方法可以輸出指定的常值內容。
● End() 方法可以使 Web 服務器停止當前的程式並返回結果。
● Redirect() 方法可以將頁面重新導向到另一頁面。
Session 對象:作用於會話期的頁面共用資訊。
Session["xxxx"] = 值對象;
對象 = Session["xxxx"];
Cookie 對象:保持與用戶端的共用資訊方式。對應於 HttpCookie 類。
Response.Cookies["xxxx"].Value = 字串變數;
string xxx = Request.Cookies["xxx"].Value;
Application 對象:作用於應用程式運行期提供共用資訊。
Application["xxxx"] = 值對象;
值變數 = Application["xxxx"];
Server 對象:只是封裝了一些 Web 服務器相關的常用方法。
Server.MapPath("~/"); //返回所在虛擬目錄的實體路徑
Server.HtmlEncode("xxxx"); //不編譯 HTML 程式碼,直接在頁面輸出
Server.Encode("xxxxx"); //對 URL 地址的特殊字元進行編碼
Server.Execute("xxxxx"); //執行參數指定的頁面,執行完後返回本頁
Server.Transfer("xxxx"); //執行參數指定的頁面,執行完後結束
三、應用程式配置
應用程式定義為項目中的所有檔案,由 Web.config 檔案配置。
第一次建立應用程式(即收到第一個 HTTP 要求時),將建立 Application 對象。此時還將觸發 Application_Start 事件,建立一個 HttpApplication 執行個體池。每個輸入的請求都會接收到這樣一個執行個體,執行請求的處理過程。與全域的 Application 對象不同,所有的 HttpApplication 執行個體完成任務後,就觸發 Application_End 事件,應用程式終止運行,消除 Application 對象。
在單個使用者使用 Web 應用程式時,會啟動一個會話,與應用程式類似,會話將建立一個使用者特定的 Session 對象,並觸發 Session_Start 事件。在一個會話中,每個請求都將觸發 Application_BeginRequest 和 Application_EndRequest 事件。在一個會話中可以多次觸發這兩個事件訪問應用程式的不同資源。會話可以手動終止,也可以因為沒有後續請求而逾時終止。會話種子會觸發 Session_End 事件,消除 Session 對象。