掌握 C# 在 Razor 中的條件判斷語法,運用強型別與簡潔語法撰寫健壯的伺服器端決策邏輯。
C# 使用大括號 { } 界定程式碼區塊,條件表達式以括號包裹:
if 陳述式啟始區塊(condition)true 時執行大括號內程式碼@{ var price = 50; }
<html>
<body>
@if (price > 30)
{
<p>The price is too high.</p>
}
</body>
</html>
else 子句處理條件為 false 的情況:
@{ var price = 20; }
<html>
<body>
@if (price > 30)
{
<p>The price is too high.</p>
}
else
{
<p>The price is OK.</p>
}
</body>
</html>
注意: else 涵蓋除 if 條件外的所有情況,確保邏輯完整性。
使用 else if 建立多層條件判斷,C# 使用 && (邏輯 AND)、|| (邏輯 OR) 進行複合條件:
@{ var price = 25; }
<html>
<body>
@if (price >= 30)
{
<p>The price is high.</p>
}
else if (price > 20 && price < 30)
{
<p>The price is OK.</p>
}
else
{
<p>The price is low.</p>
}
</body>
</html>
執行順序:首個符合條件區塊執行,後續跳過。else if 數量無限制。所有條件均不符合時執行最終 else 區塊。
switch 陳述式適用於單一變數對多個常數值的匹配,C# 7.0+ 支援模式比對:
@{
var weekday = DateTime.Now.DayOfWeek;
var day = weekday.ToString();
var message = "";
}
<html>
<body>
@switch (day)
{
case "Monday":
message = "This is the first weekday.";
break;
case "Thursday":
message = "Only one day before weekend.";
break;
case "Friday":
message = "Tomorrow is weekend!";
break;
default:
message = "Today is " + day;
break;
}
<p>@message</p>
</body>
</html>
測試值寫在 switch(...) 括號內。每個 case 以冒號結尾,程式碼區塊以 break 結束 (防止貫穿)。default: 為預設情況,對應所有未列出的值。C# 8.0+ 可使用 Switch Expression 簡化語法。
| 特性 | C# | VB.NET |
|---|---|---|
| 程式碼區塊 | @{ ... } | @Code ... End Code |
| 區塊分隔 | { } 大括號 | 關鍵字 (Then/End If) |
| 陳述式結尾 | ; 分號 | 換行 |
| 變數宣告 | var / 型別 | Dim |
| 字串串接 | + 運算子 | & 運算子 |
| 邏輯 AND | && | And / AndAlso |
| 邏輯 OR | || | Or / OrElse |
| 不等於 | != | <> |
| 陣列索引 | name[3] | name(3) |
| 大小寫敏感 | 是 | 否 |
| 檔案副檔名 | .cshtml | .vbhtml |