解說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>//不會做編碼,會顯示原始的字串