Razor 教學課程login
Razor 教學課程
作者:php.cn  更新時間:2022-04-11 14:21:21

Razor 語法


ASP.NET Razor - C# 和 VB 程式碼語法


Razor 同時支援 C# (C sharp) 和 VB (Visual Basic)。


主要的Razor C# 語法規則

  • Razor 程式碼區塊包含在 @{ ... } 中
  • 內聯表達式(變數與函數)以@ 開頭
  • 程式碼語句用分號結束
  • 變數使用var 關鍵字宣告
  • 字串用引號括起來
  • #C# 程式碼區分大小寫
  • C# 檔案的副檔名是.cshtml

#
<html>
<body>
<!-- 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>
</body>
</html>



  • 執行實例»
  • 點擊"運行實例" 按鈕查看線上實例
  • #主要的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>
# ########運行實例»######點擊"運行實例" 按鈕查看線上實例#######

它是如何運作的?

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 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>

執行實例»點擊"運行實例" 按鈕查看線上實例



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>

運行實例»點擊"執行實例" 按鈕查看線上實例


讀取使用者輸入

動態網頁的另一個重要特點是,您可以讀取取用戶輸入。

輸入是透過 Request[] 功能讀取的,並且傳送輸入資料是經過 IsPost 條件判斷的:

實例

@{
var totalMessage = "";
if(IsPost)
    {
    var num1 = Request["text1"];
    var num2 = Request["text2"];
    var total = num1.AsInt() + num2.AsInt();
    totalMessage = "Total = " + total;
}
}
<!DOCTYPE html>
<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>

執行實例 »

點擊 "執行實例" 按鈕查看線上實例

#