Web Pages 版面
ASP.NET Web Pages - 頁面佈局
透過 Web Pages ,建立一個佈局一致的網站是很容易的事。
一致的外觀
在網際網路上,您會發現很過網站都有一致的外觀和風格:
- ##。每個頁面有相同的頭部
- 每個頁面有相同的底部
- #每個頁面有相同的樣式和佈局
Content Blocks(內容區塊)許多網站都有一些內容是被顯示在網站的每個頁面中(例如頁面頭部和底部)。 透過 Web Pages,您可以使用
@RenderPage() 方法從不同的檔案匯入內容。
內容區塊(來自另一個檔案)能被導入網頁中的任何地方。內容區塊可以包含文本,標記和程式碼,就像任何普通的網頁一樣。 將共同的頭部和底部寫成單獨的文件,這會幫您節省大量的工作。您不必在每個頁面中書寫相同的內容,當內容有變動時,您只要修改頭部或底部文件,就可以看到網站中的每個頁面的相應內容都已更新。 以下顯示了它在程式碼中是如何呈現的:實例#
點擊"運行實例" 按鈕查看線上實例
<html> <body> @RenderPage("header.cshtml") <h1>Hello Web Pages</h1> <p>This is a paragraph</p> @RenderPage("footer.cshtml") </body> </html>##執行實例»
點擊"運行實例" 按鈕查看線上實例
Layout Page(佈局頁)
在上一部分,您看到了,想在多個網頁中顯示相同內容是非常容易的。
另一種建立一致外觀的方法是使用佈局頁。一個版面頁包含了網頁的結構,而不是內容。當一個網頁(內容頁)連結到佈局頁,它會根據佈局頁(模板)的結構進行顯示。
佈局頁中使用
@RenderBody()方法嵌入內容頁,除此之外,它與一個正常的網頁沒有什麼差別。 每個內容頁都必須以
佈局指令開始。 以下顯示了它在程式碼中是如何呈現的:
佈局頁:<html>
<body> <p>This is header text</p>
@RenderBody()
<p>© 2012 W3CSchool. All rights reserved.</p>
@RenderBody()
<p>© 2012 W3CSchool. All rights reserved.</p>
##########################問題問題問題;###########l############################1HHH] ;/body>###</html>#########任何網頁:#########實例#####
運行實例»
@{Layout="Layout.cshtml";} <h1> Welcome to W3Cschool </h1> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laborisnisi ut aliquip ex ea commodo consequat. Duis aute irure dolor inreprehenderit in voluptate velit esse cillum dolore eu fugiat nullapariatur. Excepteur sint occaecat cupidatat non proident, sunt inculpa qui officia deserunt mollit anim id est laborum.</p>###
運行實例»
點擊"運行實例"按鈕查看線上實例
#D.R.Y. - Don't Repeat Yourself(不要自我重複)
透過Content Blocks(內容區塊)和Layout Pages(佈局頁)這兩個ASP.NET 工具,您可以讓您的Web 應用程式顯示一致的外觀。
這兩個工具能幫您節省大量的工作,您不必再在每個頁面上重複相同的資訊。集中的標記、樣式和程式碼讓您的 Web 應用程式更易於管理,更易於維護。
防止檔案被瀏覽
在 ASP.NET 中,檔案的名稱以下劃線開頭,可以防止這些檔案在網路上被瀏覽。
如果您不想讓您的內容區塊或佈局頁被您的使用者看到,可以重新命名這些檔案:
_header.cshtm
_footer.cshtml
_Layout.cshtml
隱藏敏感資訊
在ASP.NET 中,隱藏敏感資訊(資料庫密碼、電子郵件密碼等等)最通用的方法是將這些資訊保存在一個名為"_AppStart"的單獨的檔案中。
_AppStart.cshtml
@{
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "username@example.com";
WebMail.Password = "your-password";
WebMail.From = "your-name-here@example.com";
}
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "username@example.com";
WebMail.Password = "your-password";
WebMail.From = "your-name-here@example.com";
}