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

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

價值 php 引用 沒有 整合 log 對象 文字 運行機制

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

來自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=96

從上面的講解中可以看出,單獨的母版頁是不能被用戶所訪問的。沒有內容頁支持,母版頁僅僅是一個頁面模板,沒有更多的實用價值。同樣道理,單獨的內容頁沒有母版頁的支持,也不能夠應用。這兩者是不可分割的,只有同時正確創建和使用母版頁及內容頁,才能發揮它們的強大功能。為了便於讀者理解,有必要講解一下母版頁與內容頁的運行機制。

母版頁和內容頁的運行過程可以概括為以下5個步驟。

用戶通過輸入內容頁的URL來請求某內容頁。

獲取內容頁位置後,讀取內容頁@ Page指令。如果該指令引用一個母版頁,則讀取該母版頁。

讀取母版頁後,編譯母版頁,將母版頁載入內容頁的控件樹中。

將各個Content控件的內容合並到母版頁中相應的ContentPlaceHolder控件中。

呈現得到結果頁。

這一過程可由圖7-9來表示。

技術分享圖片

(點擊查看大圖)圖7-9 母版頁和內容頁運行機制

對訪問者來說,他訪問的URL路徑就是內容頁,但呈現的結果是母版頁和內容頁合並而成的一個完整頁面。對開發者來說,只要做一個母版頁,就可以讓任意個內容頁加載該母版頁,而實現這一技術的關鍵是讓母版頁的ContentPlaceHolder控件與內容頁的Content控件一一對應。

母版頁與ASP.NET 1.1下用戶控件的作用方式大致相同,即作為內容頁的一個子級,並作為該頁中的一個容器。

總結起來,母版頁具有以下4個優點。

有利於站點的修改和維護,降低開發人員的工作強度。

由於公共內容被集中於母版頁中,因此,只要修改母版頁,就可以快速完成站點修改和維護工作,這在很大程度上提高了工作效率。

提供高效的內容整合能力。

在母版頁中,允許添加文字、控件等Web元素,同時也可以為這些Web元素添加相應事件處理程序等。例如,只需要在母版頁中添加一個服務器控件及其事件處理程序,站點內所有引用該母版頁的網頁,都將獲得同樣的應用效果。

有利於實現頁面布局。

母版頁中的ContentPlaceHolder控件起到了占位的作用,這在很大程度上有利於進行頁面布局的工作。

提供一種便於利用的對象模型。

由內容頁和母版頁組成的對象模型能夠為應用程序提供一種高效、易用的實現方式,並且這種對象模型的執行效率較以前的處理方式有了很大提高。

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