1. 程式人生 > >Asp.Net母版頁和內容頁執行機制

Asp.Net母版頁和內容頁執行機制

Asp.Net母版頁和內容頁執行機制
來自森大科技官方部落格 http://www.cnsendblog.com/index.php/?p=96
從上面的講解中可以看出,單獨的母版頁是不能被使用者所訪問的。沒有內容頁支援,母版頁僅僅是一個頁面模板,沒有更多的實用價值。同樣道理,單獨的內容頁沒有母版頁的支援,也不能夠應用。這兩者是不可分割的,只有同時正確建立和使用母版頁及內容頁,才能發揮它們的強大功能。為了便於讀者理解,有必要講解一下母版頁與內容頁的執行機制。
母版頁和內容頁的執行過程可以概括為以下5個步驟。
使用者通過輸入內容頁的URL來請求某內容頁。
獲取內容頁位置後,讀取內容頁@ Page指令。如果該指令引用一個母版頁,則讀取該母版頁。
讀取母版頁後,編譯母版頁,將母版頁載入內容頁的控制元件樹中。
將各個Content控制元件的內容合併到母版頁中相應的ContentPlaceHolder控制元件中。
呈現得到結果頁。
這一過程可由圖7-9來表示。
Asp.Net母版頁和內容頁執行機制


(點選檢視大圖)圖7-9 母版頁和內容頁執行機制
對訪問者來說,他訪問的URL路徑就是內容頁,但呈現的結果是母版頁和內容頁合併而成的一個完整頁面。對開發者來說,只要做一個母版頁,就可以讓任意個內容頁載入該母版頁,而實現這一技術的關鍵是讓母版頁的ContentPlaceHolder控制元件與內容頁的Content控制元件一一對應。
母版頁與ASP.NET 1.1下使用者控制元件的作用方式大致相同,即作為內容頁的一個子級,並作為該頁中的一個容器。
總結起來,母版頁具有以下4個優點。
有利於站點的修改和維護,降低開發人員的工作強度。
由於公共內容被集中於母版頁中,因此,只要修改母版頁,就可以快速完成站點修改和維護工作,這在很大程度上提高了工作效率。
提供高效的內容整合能力。
在母版頁中,允許新增文字、控制元件等Web元素,同時也可以為這些Web元素新增相應事件處理程式等。例如,只需要在母版頁中新增一個伺服器控制元件及其事件處理程式,站點內所有引用該母版頁的網頁,都將獲得同樣的應用效果。
有利於實現頁面佈局。
母版頁中的ContentPlaceHolder控制元件起到了佔位的作用,這在很大程度上有利於進行頁面佈局的工作。
提供一種便於利用的物件模型。
由內容頁和母版頁組成的物件模型能夠為應用程式提供一種高效、易用的實現方式,並且這種物件模型的執行效率較以前的處理方式有了很大提高。