釐清 Razor 定位:它是**標記語法**,非程式語言。專為在網頁中嵌入伺服器端程式碼 (C#/VB.NET) 而設計,簡化動態 Web 內容建構。
Razor 是一種標記語法,讓開發者將基於伺服器的程式碼 (Visual Basic、C#) 直接嵌入 HTML 網頁中。
@ 字元啟始程式碼,智慧型推斷程式碼結束位置,減少儀式性字元同樣產生 0-9 的清單項目:
<ul>
@for (int i = 0; i < 10; i++)
{
<li>@i</li>
}
</ul>
<ul>
<?php
for ($i = 0; $i < 10; $i++) {
echo "<li>$i</li>";
}
?>
</ul>
<ul>
<% for (int i = 0; i < 10; i++) { %>
<li><% =i %></li>
<% } %>
</ul>
Razor 的 @ 前置字元比 <% ... %> 更輕量,智慧識別 HTML 與程式碼邊界,無需明確閉合標記。
ASP.NET 幫助器 封裝常用功能為可重複使用的元件,透過幾行 Razor 程式碼即可調用:
.cshtml 封裝可重用 UI 邏輯 (如分頁導航、選單、表單欄位)| 幫助器 | 功能領域 | 典型用途 |
|---|---|---|
| WebGrid | 資料表格 | 分頁、排序、格式化的 HTML 表格渲染 |
| Chart | 資料視覺化 | 長條圖、圓餅圖、折線圖、股票圖等多種圖表 |
| WebMail | 電子郵件 | SMTP 發送郵件、SSL 支援、附件處理 |
| WebImage | 影像處理 | 縮放、旋轉、浮水印、格式轉換 |
| WebCache | 快取 | 記憶體快取、滑動過期、查詢字串變化快取 |
| Json | 序列化 | 物件 ↔ JSON 字串雙向轉換 |
| Crypto | 加密雜湊 | SHA256、MD5 雜湊、密碼雜湊驗證 |
| Video | 多媒體 | Flash、Silverlight、Media Player 嵌入 |
專案中可混用兩種語言 (不同副檔名),但建議專案統一單一語言以降低認知負荷。
bin/ 與 App_Data/
現代 ASP.NET Core 專案請改用 NuGet Package Manager 管理 Microsoft.AspNetCore.Mvc.Razor 相關套件。