Razor 同時支援C# (C sharp) 和VB (Visual Basic)。
本節講解了Razor C# 與Razor VB 的語法規則。
Razor 程式碼區塊包含在 @{ ... } 中
內聯表達式(變數和函數)以@ 開頭
程式碼語句用分號結束
變數使用var 關鍵字聲明
字串用引號括起來
C# 程式碼區分大小寫
C# 檔案的副檔名是.cshtml
<!-- 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>
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 --> @Codedim greeting = "Welcome to our site!" dim weekDay = DateTime.Now.DayOfWeek dim greetingMessage = greeting & " Here in Huston it is: " & weekDayEnd Code <p>The greeting is: @greetingMessage </p>
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)。下面實例示範如何存取Data 物件的一些屬性:
<table> <tr> <th>Name</th> <td>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>
動態網頁的一個重要特點是,您可以根據條件決定要做什麼。
做到這一點的常用方法是使用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>
動態網頁的另一個重要特點是,您可以讀取使用者輸入。
輸入是透過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>