ASP.NET MVC3: 使用Razor實現伺服端註解

  • 23998
  • 0
  • 2011-06-16

摘要:ASP.NET MVC3: 使用Razor實現伺服端註解

[原文發表位置] ASP.NET MVC 3: Server-Side Comments with Razor

[原文發表時間] November 12, 2010 5:33 PM

本周早期我們發佈了ASP.NET MVC3 候選發佈版。 它支援「即時」配置,包括一系列基於ASP.Net MVC3 beta第一個預覽版的新改進。

這是詳細討論ASP.NET MVC3 Beta/RC功能的我的「迷你文章」系列中的另外一篇:

今天的文章中我將討論一個我們最近引入的一個小而有用的功能:Razor中的伺服端註解支援。

為何伺服端註解?

場景: 你在處理一個檢視模板,希望暫時禁用某些內容或檢視程式碼(可能能幫助你分析一個問題,或者暫時改變你的網站輸出)

HTML支援客戶端註解(!–>),你能用其阻止瀏覽器解析、執行、顯示裡面的HTML內容。但是將這個方法用於很多情形所產生的問題是:註解內的內容還是被從伺服器送到了客戶端,這是很不必要的——伺服端註解內的程式碼還是會在伺服端執行。

ASP.NET 表單支援一種伺服端註解語句(<%- -%>),你能使用它來完全禁用頁面上的內容、程式碼、控制項。使用伺服端註解,ASP.NET表單編譯器在解析的時候完全跳過<%–%>塊內的內容,在組裝頁面的時候完全移除那部分內容。你能在我這裡的一篇舊一些的文章上獲取更多這個功能的相關訊息。

本周早前有人問我:用Razor可以實現同樣功能嗎?答案是肯定的。

使用Razor實現伺服端註解

Razor現在允許你將檢視中的任何程式碼、內容、區域放入@*註解 *@語句(對C#和VB模板都有用)。這個語句表明Razor解析器必須忽略這個塊裡的任何內容,就像根本就不存在一樣(意味著沒有東西被執行,在執行時沒有效能損耗,沒有東西被傳到客戶端)。

比如, 下面我將一些HTML內容和伺服器程式碼包含於一個@**@塊。這等同於它從來就不在那裡

clip_image001

注意上面Visual Studio是如何在編輯器中對註解進行著色(預設是綠色)以使它們更直覺的。

Visual Studio現在還讓你能使用文字編輯器工具欄上的註解、取消註解按鈕很容易地註解、取消註解一段文字、程式碼。比如,我們現在選擇上面文字編輯器中的@**@註解塊,然後點工具欄上的「取消註解」按鈕(或按Ctrl+K,CTrl+U更好)讓VS取消註解那塊區域:

clip_image002

我們這樣做的時候,編輯器將自動幫我們取消註解那一塊(可以少按些鍵):

clip_image003

我們然後可以在編輯器中選中突出顯示另一塊區域的文字、程式碼,然後點「註解」工具欄按鈕或按Ctrl+k,ctrl+C實現伺服端註解:

clip_image004

我們這樣做的時候,編輯器將自動幫我們註解那一塊(可以少按些鍵):

clip_image005

總結

伺服端註解是一個有用的小功能,在很多情況都可以信手拈來。Razor現在支援執行期註解,Visual Studio提供不錯的開發時工具支援。

希望對您有所幫助。

free counters