目錄:html
Razor是基於服務端代碼轉換成網頁的標記語法。語法主要包括Razor標記、C#和HTML組成。包含Razor語法的主要文件是.cshtml。服務器
Razor的默認語言是HTML,從Razor渲染成一個HTML跟直接的一個HTML沒什麼區別,Razor包含以下代碼:spa
<p>我是中國人</p>
服務器渲染後仍是<p>我是中國人</p>,沒啥區別。code
Razor支持C#,並經過使用 @ 符號從HTML切換到C#,並運算C#表達式並將之渲染爲HTML輸出。Razor能經過指定的標記從HTML切換到C#,當 @ 符號後面緊跟一個Razor保留字,則將切換爲Razor特定標記,否則的話切換到成普通的C#。htm
若是HTML中須要包含 @ 的話,須要用@@符號進行轉義。blog
<p>@@Email</p>
渲染後:
get
<p>@Email</p>
這樣就不會由於HTML特性和內容中包含郵件地址@符號,而勿將@符號處理爲轉義字符。class
隱式Razor表達式起於"@"符號,後面緊跟C#代碼,好比:渲染
<h2>@DateTime.Now</h2>
注意:隱式表達式都不能包含空格。不然分析器會報以下錯誤:語法
在 "@" 字符後面遇到了空格或換行符。只有有效的標識符、關鍵字、註釋、"(" 和 "{" 在代碼塊開頭纔有效,而且它們必須緊跟在 "@" 後面,中間沒有空格。
顯式表達式包含一對括號的 @ 符號,好比在頁面上渲染上週的時間:
<h2>@(DateTime.Now-TimeSpan.FromDays(7))</h2>
任何在 @() 內的內容都會被運算並渲染輸出,同時也不能包含空格。好比以下代碼:
<h2>@DateTime.Now-TimeSpan.FromDays(7)</h2>
渲染後:
2016/10/24 22:39:49-TimeSpan.FromDays(7)
同時也能夠使用@{}顯示錶達式結果中把這點鏈接起來:
@{
var swich = new Person("Swich", 27);
}
<h2>@(swich.Age)</h2>
若是寫成@(swich.Age)這種非顯示錶達式,那麼它會當作郵件地址來處理渲染成爲<h2>@swich.Age</h2>。當爲顯式表達式時,將渲染爲<h2>27</h2>。