ASP.NET MVC — Razor

謝駿辰
Jason的網頁筆記
Nov 22, 2021
Photo by Helen Barth on Unsplash

網站已搬家,請到新網站支持我呦> https://jasonhsieh-web.github.io/

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支援的保留關鍵字,分為兩大類:

  1. Razor關鍵字:section、model、helper、inherits和functions五個關鍵字是Razor創造的,用來支持Razor語法所需功能。
  2. 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等指令

if…else
foreach

參考至: 網頁程式設計ASP.NET MVC 5.X範例完美演繹(適用Visual C# 2019/2017)(第三版)

如果我的筆記對您有幫助的話,不吝嗇給我個clap哦~ 謝謝您 !

--

--