Razor語法規則

解說Razor常用的語法規則

規則一

以符號@為C#語法開頭,只要遇到@開頭就會自動解析為C#

程式碼

@if(A>B){
  statement;
}@else{
  statement;
}

規則二

只要是@{...}大括號區塊內可以編寫多行C#程式碼,不需重複使用@開頭

程式碼

@{
  int a=1;
  int b=2;
  string str="這是字串";
}

規則三

C#Inline表達式,將C#穿插在HTML中

程式碼

<p>帳號:@Id </p>
<p>密碼:@Password</p>
<p>年紀:@Age</p>

規則四

C#程式區塊中HTML隱式轉換,若@{...}夾雜HTML語法,Razor會自動隱式轉換,將該部分輸出為HTML

程式碼

@{
  if(A>B){
   <p>@A 比較大</p>//需要特別注意若在區塊內遇到HTML的Tag,在Tag之後的變數需要再加上@,否則無法正確輸出
 }
}

規則五

註解

程式碼

@* ... *@//單行與多行都可使用

規則六

Razor明確表達式

程式碼

@(...)//括號內會明確指示是C#運算式

規則七

HTML與JS的編碼與不編碼

程式碼

var msg = @"<button type='button' onclick='alert(""Hello World"")'>HTML與JS的編碼與不編碼</button>";
<p>@(msg)</p>//使用@(...)會把HTML與JS編碼成純文字,增加網站安全性
<p>@Html.Raw(msg)</p>//不會做編碼,會顯示原始的字串