天天看點

母版頁

一個可以作為多個網頁的頁面布局,可以給多個網頁定義通用行為和相同外觀,以.master為擴充名的檔案,稱為母版頁,它的存在減少的代碼量,程式員可以不用在多個頁面編寫重複的代碼,直接修改母版頁即可

首先建立母版頁:

母版頁

建立的母版頁中隻包括公共的部分,是以母版頁主要設定的就是頁頭及頁尾的代碼:

母版頁

母版頁的編輯完全跟aspx頁面的編輯相同,包括<html><body><div>等web元素,而編輯母版頁時,除ContentPlaceHolder 控件不要進行操作,其餘地方可自由編輯.

建立内容頁

母版頁

選擇母版頁:視窗左側是項目檔案夾,右側是檔案夾中的母版頁清單,選擇相對應的點選确定

母版頁

新創立頁面代碼

至此頁面創立完成:内容頁自由編輯 但不要有<html><body><title><head>

另外需要注意的是:

1:一個網站可以設定多種類型的母版頁,以滿足不同顯示風格的需要;

2:已經建成的網頁也可以重新嵌套進新的母版頁;

打開已建成的網頁,進入它的代碼界面,在頁面訓示語句中增加與母版頁的聯系。為此需增加以下屬性,其中"~/MasterPage.master"代表母版頁名。

<%@Page Language="C#" MasterPageFile=" ~/MasterPage.master"

AutoEventWireup="…">

(2)    由于在母版頁中已經包含有HTML、Head、Body、Form等标記,是以在網頁中要删除所有這些标記,以避免重複。同樣,類似于<H1></H1>的标記也要删除(div标記不要删除)。

(3)    在剩下内容的前後兩端加上Content标記,并增加Content的ID屬性,Runat屬性以及ContentPlaceHolderID屬性,後者的值(這裡是ContentPlaceHolder1)應該與母版頁中的網頁容器相同。修改後的語句結構如下:

<asp:Content ID="bodyContent" ContentPlaceHolderID="ContentPlaceHolder1" Runat=Server>

 <div>

   …

</div>

   </asp:Content>

就是說修改後的代碼中除頁面訓示語句以外,所有語句都應放置在<asp:Content…>與</asp:Content>之間。

3: 母版頁中有多處使用相對路徑文法引用圖像、樣式表或頁引用之類的URL資源,如果母版頁和内容頁在同一目錄中,代碼将正常運作;但是,如果内容頁實際上在另一個位置,這個相對路徑就是錯誤的。要解決這個問題,可以采取以下方法之一:

l 在母版頁中使用絕對URL路徑,例如<img src="/myapplication/p_w_picpaths/banner.gif" />。

l 在伺服器控件中使用相對URL或與應用程式相關的URL來代替靜态标記,例如<asp:Image ImageUrl="~/p_w_picpaths/banner.gif" runat="server" />。

繼續閱讀