Razor基礎語法一

目錄:html

什麼是Razor?

Razor是基於服務端代碼轉換成網頁的標記語法。語法主要包括Razor標記、C#和HTML組成。包含Razor語法的主要文件是.cshtml。服務器

渲染HTML

Razor的默認語言是HTML,從Razor渲染成一個HTML跟直接的一個HTML沒什麼區別,Razor包含以下代碼:spa

<p>我是中國人</p>

服務器渲染後仍是<p>我是中國人</p>,沒啥區別。code

Razor語法

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 表達式

隱式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>。

相關文章
相關標籤/搜索