詳解ASP.NET Razor 語法
Razor 同時支援 C# (C sharp) 和 VB (Visual Basic)。
主要的 Razor C# 語法規則
- Razor 程式碼塊包含在 @{ ... } 中
- 內聯表示式(變數和函式)以 @ 開頭
- 程式碼語句用分號結束
- 變數使用 var 關鍵字宣告
- 字串用引號括起來
- C# 程式碼區分大小寫
- C# 檔案的副檔名是 .cshtml
C# 例項
<!-- Single statement block --> @{ var myMessage = "Hello World"; } <!-- Inline expression or variable --> <p>The value of myMessage is: @myMessage</p> <!-- Multi-statement block --> @{ var greeting = "Welcome to our site!"; var weekDay = DateTime.Now.DayOfWeek; var greetingMessage = greeting + " Here in Huston it is: " + weekDay; } <p>The greeting is: @greetingMessage</p>
輸出
The value of myMessage is: Hello World
The greeting is: Welcome to our site! Here in Huston it is: Saturday
主要的 Razor VB 語法規則
- Razor 程式碼塊包含在 @Code ... End Code 中
- 內聯表示式(變數和函式)以 @ 開頭
- 變數使用 Dim 關鍵字宣告
- 字串用引號括起來
- VB 程式碼不區分大小寫
- VB 檔案的副檔名是 .vbhtml
例項
<!-- Single statement block --> @Code dim myMessage = "Hello World" End Code <!-- Inline expression or variable --> <p>The value of myMessage is: @myMessage</p> <!-- Multi-statement block --> @Code dim greeting = "Welcome to our site!" dim weekDay = DateTime.Now.DayOfWeek dim greetingMessage = greeting & " Here in Huston it is: " & weekDay End Code <p>The greeting is: @greetingMessage</p>
輸出
The value of myMessage is: Hello World
The greeting is: Welcome to our site! Here in Huston it is: Saturday
它是如何工作的?
Razor 是一種將伺服器程式碼嵌入在網頁中的簡單的程式設計語法。
Razor 語法是基於 ASP.NET 框架,專門用於建立 Web 應用程式的部分 Microsoft.NET 框架。
Razor 語法支援所有 ASP.NET 的功能,但是使用的是一種簡化語法,對初學者而言更容易學習,對專家而言更有效率的。
Razor 網頁可以被描述成帶以下兩種型別內容的 HTML 網頁: HTML 內容和 Razor 程式碼。
當伺服器讀取頁面時,它首先執行 Razor 程式碼,然後再發送 HTML 頁面到瀏覽器。在伺服器上執行的程式碼能夠執行一些在瀏覽器上不能完成的任務,比如,訪問伺服器資料庫。伺服器程式碼能建立動態的 HTML 內容,然後傳送到瀏覽器。從瀏覽器上看,伺服器程式碼生成的 HTML 與靜態的 HTML 內容沒有什麼不同。
帶 Razor 語法的 ASP.NET 網頁有特殊的副檔名 cshtml(Razor C#)或者 vbhtml(Razor VB)。
使用物件
伺服器編碼往往涉及到物件。
"Date" 物件是一個典型的內建的 ASP.NET 物件,但物件也可以是自定義的,一個網頁,一個文字框,一個檔案,一個數據庫記錄,等等。
物件有用於執行的方法。一個數據庫記錄可能有一個 "Save" 方法,一個影象物件可能有一個 "Rotate" 方法,一個電子郵件物件可能有一個 "Send" 方法,等等。
物件也有用於描述各自特點的屬性。一個數據庫記錄可能有 FirstName 和 LastName 屬性。
ASP.NET Date 物件有一個 Now 屬性(寫成 Date.Now),Now 屬性有一個 Day 屬性(寫成 Date.Now.Day)。下面例項演示瞭如何訪問 Date 物件的一些屬性:
<table border="1"> <tr> <th width="100px">Name</th> <td width="100px">Value</td> </tr> <tr> <td>Day</td><td>@DateTime.Now.Day</td> </tr> <tr> <td>Hour</td><td>@DateTime.Now.Hour</td> </tr> <tr> <td>Minute</td><td>@DateTime.Now.Minute</td> </tr> <tr> <td>Second</td><td>@DateTime.Now.Second</td> </tr> </td> </table>
輸出
NAME | value |
Day | 17 |
Hour | 21 |
Minute | 6 |
Second | 38 |
If 和 Else條件
動態網頁的一個重要特點是,您可以根據條件決定做什麼。
做到這一點的常用方法是使用 if ... else 語句:
@{ var txt = ""; if(DateTime.Now.Hour > 12) {txt = "Good Evening";} else {txt = "Good Morning";} } <html> <body> <p>The message is @txt</p> </body> </html>
輸出
The message is Good Evening
讀取使用者輸入
動態網頁的另一個重要特點是,您可以讀取使用者輸入。
輸入是通過 Request[] 功能讀取的,並且傳送輸入資料是經過 IsPost 條件判斷的:
@{ var totalMessage = ""; if(IsPost) { var num1 = Request["text1"]; var num2 = Request["text2"]; var total = num1.AsInt() + num2.AsInt(); totalMessage = "Total = " + total; } } <html> <body style="background-color: beige; font-family: Verdana,Arial;"> <form action="" method="post"> <p><label for="text1">First Number:</label><br> <input type="text" name="text1" /></p> <p><label for="text2">Second Number:</label><br> <input type="text" name="text2" /></p> <p><input type="submit" value=" Add " /></p> </form> <p>@totalMessage</p> </body> </html>
輸出
以上就是詳解ASP.NET Razor 語法的詳細內容,更多關於ASP.NET Razor 語法的資料請關注我們其它相關文章!