ASP.NET 2.0 中的建立主版頁面

來源:互聯網
上載者:User

  雖然主版頁面和內容頁功能強大,但是其建立和應用過程並不複雜。本節和下一節將以建立1所示樣本為例,向讀者詳細介紹,使用Visual Stuido 2005建立主版頁面和內容頁的方法以及相關知識。本節的重點是建立主版頁面的方法。

  主版頁面中包含的是頁面公用部分,即網頁模板。因此,在建立樣本之前,必須判斷哪些內容是頁面公用部分,這就需要從分析頁面結構開始。圖1所示顯示的是一個頁面。在下文中,暫稱該頁面名為Index.aspx,並且假設其為某網站中的一頁。通過分析可知,該頁面的結構5所示。

圖5 頁面結構圖

  頁面Index.aspx由4個部分組成:頁頭、頁尾、內容1和內容2。其中頁頭和頁尾是Index.aspx所在網站中頁面的公用部分,網站中許多頁面都包含相同的頁頭和頁尾。內容1和內容2是頁面的非公用部分,是Index.aspx頁面所專屬的。結合主版頁面和內容頁的有關知識可知,如果使用主版頁面和內容頁來建立頁面Index.aspx,那麼必須建立一個主版頁面MasterPage.master和一個內容頁Index.aspx。其中主版頁面包含頁頭和頁尾等內容,內容頁中則包含內容1和內容2。

  使用Visual Studio 2005建立一個普通Web網站,然後,在網站根目錄下建立一個名為MasterPage.master的主版頁面。由於這是一個添加新檔案的過程,因此,單擊“網站”命令菜單中的“添加新項..”選項,可以開啟6所示的視窗。

圖6 添加主版頁面

  由於此例建立的是主版頁面,因此,需要選擇主版頁面表徵圖,並且設定檔案名稱為MasterPage.master。需要注意的是,該視窗中還有一個複選框項“將代碼放在單獨的檔案中”。預設情況下,該複選框處於選中狀態。表示Visual Studio 2005將會為MasterPage.master檔案應用程式碼後置模型,即在建立MasterPage.master檔案的基礎上,自動建立一個與該檔案相關的MasterPage.master.cs檔案。如果不選中該項,那麼只會建立一個MasterPage.master檔案而已。建議讀者選取該項。

  在建立MasterPage.master檔案之後,接著就可以開始編輯該檔案了。根據前文說明,主版頁面中只包含頁面公用部分,因此,MasterPage.master中主要包含的是頁頭和頁尾的代碼。具體原始碼如下所示:

主版頁面MasterPage.master檔案原始碼
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<link href="css/myfreetemplates.css" rel="stylesheet" type="text/css" />
</head>

<body background="http://www.68design.net/art/images/pixi_lime.gif" leftmargin="0" topmargin="0">
<form id="form1" runat="server">
<div align="center">
<table width="763" height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="763" height="86" align="right" valign="top">
<img src="http://www.68design.net/art/images/topic.gif"></td>
</tr>
<tr>
<td width="763" height="53" align="right" valign="bottom" background="images/nav_bg.gif"></td>
</tr>
<tr>
<td width="763" height="22" align="right" valign="top"><img src="http://www.68design.net/art/images/toppic2.gif" width="763" height="22"></td>
</tr>
<tr>
<td width="763" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="244" valign="top">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder>
</td>
<td valign="top" align="left">
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server"></asp:ContentPlaceHolder>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="763" height="1" background="http://www.68design.net/art/images/pixi_lime.gif"><img src="http://www.68design.net/art/images/pixi_lime.gif" width="1" height="1"></td>
</tr>
<tr>
<td width="763" height="35" align="center" class="baseline">Copyright Study.Com 2006</td>
</tr>
</table>
</div>
</form>
</body></html>

  以上是主版頁面MasterPage.master的原始碼,與普通的.aspx原始碼非常相似,例如,包括<html>、<body>、<form>等Web元素,但是,與普通頁面還是存在差異。差異主要有兩處(粗體代碼所示)。差異一是代碼頭不同,主版頁面使用的是Master,而普通.aspx檔案使用的是Page。除此之外,二者在代碼頭方面是相同的。差異二是主版頁面中聲明了控制項ContentPlaceHolder,而在普通.aspx檔案中是不允許使用該控制項的。在MasterPage.master的原始碼中,共聲明了兩個ContentPlaceHolder控制項,用於在頁面模板中為內容1和內容2佔位。ContentPlaceHolder控制項本身並不包含具體內容設定,僅是一個控制項聲明。

  圖7所示,顯示了MasterPage.master檔案的設計時視圖。


圖7 主版頁面設計時視圖

  使用Visual Studio 2005可以對主版頁面進行編輯,並且它完全支援“所見即所得 (WYSIWYG)”功能。無論是在代碼模式下,還是設計模式下,使用Visual Studio 2005編輯主版頁面的方法,與編輯普通.aspx檔案是相同的。圖中兩個矩形框表示ContentPlaceHolder控制項。開發人員可以直接在矩形框中新增內容,所設定內容的代碼將包含在ContentPlaceHolder控制項聲明代碼中。需要注意的是,這種方法是,不規範的,因此,不推薦使用這種做法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.