Razor
Razor又稱Razor Syntax,是用來將Server Side的C#程式嵌入到HTML中的標記語法,如下圖。
Razor中只有HTML及C#兩種元素,結合再一起就形成了Razor語法。
C#程式區塊是以@{…}包覆,裡面是一般C#程式。
Razor inline表達式是指C#變數穿插在HTML中,而Razor中預設是Html語言,若遇到@符號,表示後面接的是C#指令。
Razor會依不同的規則或符號在HTML和c#間切換。
Razor支援的保留關鍵字
不是所有C#指令或關鍵字都能在Razor中使用,Razor支援的保留關鍵字,分為兩大類:
Razor關鍵字:section、model、helper、inherits和functions五個關鍵字是Razor創造的,用來支持Razor語法所需功能。
C#關鍵字:源自既有的C#,而不是Razor創造的,如:using、if…else、switch…case、for、foreach、while…..等等
Razor只能在View檢視(.cshtml)中使用,而不能再.html中使用,所以View也稱為Razor View 或 View Template。
Razor語法規則
規則1:以@符號作為C#開頭
規則2:以@{…}宣告單行的C#程式
規則3:以@{…}宣告多行的C#程式
規則4:C#的inline表達式
規則5:C#程式區塊中的HTML隱式轉換
@{….}程式區塊中預設語言是C#,但若夾雜了HTML語法,Razor會自動做隱式轉換。
規則6:C#關鍵字嚴格區分大小寫
規則7:Razor明確表達式為@(….)符號
規則8:以文字顯示@符號,需用@@表示
規則9:用@Html.Raw()顯示原始字串,不做HTML編碼
規則10:磁碟路徑表示法
字串變數入包含磁碟路徑,可在最前面加上@符號,若要把檔案虛擬路徑轉成實體路徑,可用Server.MapPath()方法。
Razor判斷式與流程控制
Razor若要做判斷式或迴圈流程控制,可用C#的if、for、foreach等指令
參考至: 網頁程式設計ASP.NET MVC 5.X範例完美演繹(適用Visual C# 2019/2017)(第三版)
文章若有錯誤或想交流,還不吝嗇給予指教哦