ASP.NET Razor - ภาษา C# และ VB โค้ด syntax

Razor สนับสนุนภาษา C# (C sharp) และ VB (Visual Basic) พร้อมกัน

กฎระเบียบ Razor หลักของ C#

  • โค้ด Razor ถูกล้อมรอบด้วย @{ ... }
  • ความเป็นไปได้ที่ใช้ตัวแปรหรือฟังก์ชันภายในบรรทัดเริ่มด้วย @
  • ประโยคโค้ดจะสิ้นสุดด้วยเครื่องหมายปิดสีแดง
  • ตัวสัญญาณมีขอบเคืองด้วยคำว่าขอบ
  • โค้ด C# รับความสำคัญกับกระบวนการใช้คีย์แบกซ์ตัวใหญ่หรือตัวเล็ก
  • นามสกุลแฟ้ม C# คือ .cshtml

ตัวอย่าง C#

<!-- บล็อคความเป็นไปได้ของบรรทัดเดียว -->
@{ var myMessage =	"Hello World"; }
<!-- แสดงความเป็นไปได้หรือตัวแปรในแถว -->
<p>ค่าของ myMessage คือ: @myMessage</p> 
<!-- บล็อคความเป็นไปได้ของบรรทัดที่หลายช่อง -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}
<p>ข้อความเตือนคือ: @greetingMessage</p>

ปฏิบัติตัวอย่าง

กฎระเบียบ Razor หลักของ VB

  • โค้ด Razor ถูกล้อมรอบด้วย @Code ... End Code
  • ความเป็นไปได้ที่ใช้ตัวแปรหรือฟังก์ชันภายในบรรทัดเริ่มด้วย @
  • ใช้คำว่า Dim มาประกาศตัวแปร
  • ตัวสัญญาณมีขอบเคืองด้วยคำว่าขอบ
  • VB ไม่รับความสำคัญกับกระบวนการใช้คีย์แบกซ์ตัวใหญ่หรือตัวเล็ก
  • นามสกุลแฟ้ม VB คือ .vbhtml

ตัวอย่าง

<!-- บล็อคความเป็นไปได้ของบรรทัดเดียว -->
@Code dim myMessage = "Hello World" End Code
<!-- แสดงความเป็นไปได้หรือตัวแปรในแถว -->
<p>ค่าของ myMessage คือ: @myMessage</p> 
<!-- บล็อคความเป็นไปได้ของบรรทัดที่หลายช่อง -->
@Code
dim greeting = "Welcome to our site!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
สิ้นสุดโค้ด 
<p>ข้อความเตือนคือ: @greetingMessage</p>

ปฏิบัติตัวอย่าง

แบบที่เป็นไปได้?

Razor เป็นภาษาเขียนโปรแกรมที่เรียบง่าย ใช้ในการแนวรับโค้ดบนด้านเซิร์ฟเวอร์ของเว็บ

Razor 语法มีฐานบน ASP.NET ซึ่งเป็นส่วนประกอบของ .NET ภาษาจาก Microsoft ที่ถูกออกแบบเพื่อการพัฒนาโปรแกรม web ในเครื่องข่าย

Razor 语法มอบความสามารถทั้งหมดของ ASP.NET ให้คุณ แต่ใช้กลองเรียกแบบที่เรียบง่าย ดังนั้นถ้าคุณเป็นผู้เริ่มต้น จะง่ายต่อการเรียนรู้ และถ้าคุณเป็นผู้เชี่ยวชาญ จะช่วยเพิ่มผลผลิตมากยิ่งขึ้น

Razor 網頁可被描述為帶有兩種內容的 HTML 頁面:HTML 內容和 Razor 代碼。

當服務器讀取這種頁面後,在將 HTML 頁面發送到瀏覽器之前,會首先運行 Razor 代碼。這些在服務器上執行的代碼能夠完成瀏覽器中無法完成的任務,比如訪問服務器數據庫。服務器代碼能在頁面被發送到瀏覽器之前創建動態的 HTML 內容。從瀏覽器來看的話,由服務器代碼生成的 HTML 與靜態 HTML 內容沒有區別。

使用 Razor 語法的 ASP.NET 網頁擁有特殊的文件擴展名 cshtml(使用 C# 的 Razor 語法)或者 vbhtml(使用 VB 的 Razor)。

與對象打交道

服務器代碼常常涉及對象。

"Date" 對象是典型的 ASP.NET內建對象,但是也可以自行定義對象,一張網頁,一個文本框,一個文件,或者一條數據庫記錄,等等。

對象可以擁有能夠執行的方法。數據庫記錄可以提供“保存”方法,圖像對象可以有“旋轉”方法,郵件對象可以提供“發送”方法,以此類推。

對象也可以有描述其特點的屬性。數據庫記錄可以有 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>

ปฏิบัติตัวอย่าง

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

ปฏิบัติตัวอย่าง