ASP.NET Razor - C# 和 VB 程式碼語法
Razor 同時支援 C# (C sharp) 和 VB (Visual Basic)。
C# 的主要 Razor 語法規則
- Razor 程式碼塊用 @{ ... } 括起來
- 內聯表示式(變數和函式)以 @ 開頭
- 程式碼語句以分號結尾
- 變數用 var 關鍵字宣告
- 字串用引號括起來
- C# 程式碼區分大小寫
- C# 檔案具有 .cshtml 副檔名
C# 示例
<!-- 單語句塊 -->
@{ var myMessage = "Hello World"; }
<!-- 內聯表示式或變數 -->
<p>myMessage 的值是: @myMessage</p>
<!-- 多語句塊 -->
@{
var greeting = "歡迎訪問我們的網站!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " 在休斯頓今天是: " + weekDay;
}
<p>問候語是: @greetingMessage</p>
執行示例 »
VB 的主要 Razor 語法規則
- Razor 程式碼塊用 @Code ... End Code 括起來
- 內聯表示式(變數和函式)以 @ 開頭
- 變數用 Dim 關鍵字宣告
- 字串用引號括起來
- VB 程式碼不區分大小寫
- VB 檔案具有 .vbhtml 副檔名
示例
<!-- 單語句塊 -->
@Code dim myMessage = "Hello World" End Code
<!-- 內聯表示式或變數 -->
<p>myMessage 的值是: @myMessage</p>
<!-- 多語句塊 -->
@Code
dim greeting = "歡迎訪問我們的網站!"
dim weekDay = DateTime.Now.DayOfWeek
dim greetingMessage = greeting & " 在休斯頓今天是: " & weekDay
End Code
<p>問候語是: @greetingMessage</p>
執行示例 »
它是如何工作的?
Razor 是一種簡單的程式設計語法,用於在網頁中嵌入伺服器程式碼。
Razor 語法基於 ASP.NET 框架,這是 Microsoft.NET 框架中專門用於建立 Web 應用程式的部分。
Razor 語法為您提供了 ASP.NET 的所有強大功能,但使用的是簡化的語法,如果您是初學者,則更容易學習;如果您是專家,則可以提高工作效率。
使用 Razor 語法的網頁可以描述為包含兩種內容的 HTML 頁面:HTML 內容和 Razor 程式碼。
當伺服器讀取頁面時,它會首先執行 Razor 程式碼,然後才將 HTML 頁面傳送到瀏覽器。在伺服器上執行的程式碼可以執行瀏覽器中無法完成的任務,例如訪問伺服器資料庫。伺服器程式碼可以在傳送到瀏覽器之前即時建立動態 HTML 內容。從瀏覽器的角度來看,伺服器程式碼生成的 HTML 與靜態 HTML 內容沒有什麼不同。
使用 Razor 語法的 ASP.NET 網頁具有特殊的 .cshtml(Razor 使用 C#)或 .vbhtml(Razor 使用 VB)副檔名。
使用物件
伺服器編碼通常涉及物件。
"DateTime" 物件是一個典型的內建 ASP.NET 物件,但物件也可以是自定義的,例如網頁、文字框、檔案、資料庫記錄等。
物件可能具有它們可以執行的方法。資料庫記錄可能有一個“儲存”方法,影像物件可能有一個“旋轉”方法,電子郵件物件可能有一個“傳送”方法,依此類推。
物件還具有描述其特徵的屬性。資料庫記錄可能具有 FirstName 和 LastName 屬性(以及其他屬性)。
ASP.NET DateTime 物件有一個 Now 屬性(寫為 DateTime.Now),Now 屬性有一個 Day 屬性(寫為 DateTime.Now.Day)。下面的示例展示瞭如何訪問 DateTime 物件的某些屬性
示例
<table border="1">
<tr>
<th width="100px">名稱</th>
<td width="100px">值</td>
</tr>
<tr>
<td>日</td><td>@DateTime.Now.Day</td>
</tr>
<tr>
<td>時</td><td>@DateTime.Now.Hour</td>
</tr>
<tr>
<td>分</td><td>@DateTime.Now.Minute</td>
</tr>
<tr>
<td>秒</td><td>@DateTime.Now.Second</td>
</tr>
</td>
</table>
執行示例 »
If 和 Else 條件
動態網頁的一個重要特性是您可以根據條件決定要做什麼。
常見的做法是使用 if ... else 語句
示例
@{
var txt = "";
if(DateTime.Now.Hour > 12)
{txt = "晚上好";}
else
{txt = "早上好";}
}
<html>
<body>
<p>訊息是 @txt</p>
</body>
</html>
執行示例 »
讀取使用者輸入
動態網頁的另一個重要特性是您可以讀取使用者輸入。
輸入透過 Request[] 函式讀取,並透過 IsPost 條件測試釋出(輸入)
示例
@{
var totalMessage = "";
if(IsPost)
{
var num1 = Request["text1"];
var num2 = Request["text2"];
var total = num1.AsInt() + num2.AsInt();
totalMessage = "總計 = " + total;
}
}
<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">第一個數字:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">第二個數字:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" 新增 " /></p>
</form>
<p>@totalMessage</p>
</body>
</html>
執行示例 »