Razor รองรับทั้ง C# (C Sharp) และ VB (Visual Basic)
ส่วนนี้จะอธิบายกฎไวยากรณ์ของ Razor C# และ Razor VB
บล็อกรหัสมีดโกนจะอยู่ใน @{ ... }
นิพจน์อินไลน์ (ตัวแปรและฟังก์ชัน) เริ่มต้นด้วย @
สิ้นสุดคำสั่งโค้ดด้วยเครื่องหมายอัฒภาค
ตัวแปรถูกประกาศโดยใช้คีย์เวิร์ด var
สตริงที่อยู่ในเครื่องหมายคำพูด
รหัส C# คำนึงถึงขนาดตัวพิมพ์
นามสกุลไฟล์ C# คือ .cshtml
<!-- บล็อกคำสั่งเดี่ยว --> @{ var myMessage = "Hello World"; } <!-- นิพจน์หรือตัวแปรอินไลน์ --> <p>ค่าของ myMessage คือ: @myMessage </p> <!-- บล็อกหลายคำสั่ง --> @{var Greeting = "ยินดีต้อนรับสู่เว็บไซต์ของเรา!";var weekDay = DateTime.Now.DayOfWeek;var GreetingMessage = คำทักทาย + " ที่นี่ใน Huston คือ: " + สัปดาห์วัน;} <p>คำทักทายคือ: @greetingMessage </p>
บล็อกรหัสมีดโกนจะอยู่ใน @Code ... End Code
นิพจน์อินไลน์ (ตัวแปรและฟังก์ชัน) เริ่มต้นด้วย @
ตัวแปรถูกประกาศโดยใช้คีย์เวิร์ด Dim
สตริงที่อยู่ในเครื่องหมายคำพูด
รหัส VB ไม่คำนึงถึงขนาดตัวพิมพ์
นามสกุลของไฟล์ VB คือ .vbhtml
<!-- บล็อกคำสั่งเดี่ยว --> @Code dim myMessage = โค้ดสิ้นสุด "Hello World" <!-- นิพจน์หรือตัวแปรอินไลน์ --> <p>ค่าของ myMessage คือ: @myMessage </p> <!-- บล็อกหลายคำสั่ง --> @Codedim ทักทาย = "ยินดีต้อนรับสู่เว็บไซต์ของเรา!" dim weekDay = DateTime.Now.DayOfWeek dim GreetingMessage = คำทักทาย & " ที่นี่ใน Huston มันคือ: " & weekDayEnd Code <p>คำทักทายคือ: @greetingMessage </p>
Razor เป็นไวยากรณ์การเขียนโปรแกรมอย่างง่ายสำหรับการฝังโค้ดเซิร์ฟเวอร์ในหน้าเว็บ
ไวยากรณ์ของมีดโกนจะขึ้นอยู่กับกรอบงาน ASP.NET ซึ่งเป็นส่วนหนึ่งของกรอบงาน Microsoft .NET ที่ออกแบบมาโดยเฉพาะสำหรับการสร้างเว็บแอปพลิเคชัน
ไวยากรณ์ของ Razor รองรับฟีเจอร์ทั้งหมดของ ASP.NET แต่ใช้ไวยากรณ์ที่เรียบง่ายซึ่งง่ายต่อการเรียนรู้สำหรับผู้เริ่มต้น และมีประสิทธิภาพมากกว่าสำหรับผู้เชี่ยวชาญ
หน้าเว็บ Razor สามารถอธิบายได้ว่าเป็นหน้าเว็บ HTML ที่มีเนื้อหาสองประเภท: เนื้อหา HTML และรหัส Razor
เมื่อเซิร์ฟเวอร์อ่านเพจ เซิร์ฟเวอร์จะรันโค้ด Razor ก่อนส่งเพจ HTML ไปยังเบราว์เซอร์ โค้ดที่ดำเนินการบนเซิร์ฟเวอร์สามารถทำงานที่ไม่สามารถทำได้บนเบราว์เซอร์ เช่น การเข้าถึงฐานข้อมูลเซิร์ฟเวอร์ รหัสเซิร์ฟเวอร์สามารถสร้างเนื้อหา HTML แบบไดนามิกและส่งไปยังเบราว์เซอร์ จากมุมมองของเบราว์เซอร์ HTML ที่สร้างโดยรหัสเซิร์ฟเวอร์ไม่แตกต่างจากเนื้อหา HTML แบบคงที่
หน้าเว็บ ASP.NET ที่มีไวยากรณ์ของ Razor จะมีนามสกุลไฟล์พิเศษ cshtml (Razor C#) หรือ vbhtml (Razor VB)
การเข้ารหัสเซิร์ฟเวอร์มักเกี่ยวข้องกับวัตถุ ออบเจ็กต์ "Date" เป็นออบเจ็กต์ ASP.NET ในตัวทั่วไป แต่ออบเจ็กต์นั้นยังสามารถเป็นออบเจ็กต์แบบกำหนดเอง เว็บเพจ กล่องข้อความ ไฟล์ บันทึกฐานข้อมูล ฯลฯ ออบเจ็กต์มีวิธีการดำเนินการ บันทึกฐานข้อมูลอาจมีวิธี "บันทึก" วัตถุรูปภาพอาจมีวิธี "หมุน" วัตถุอีเมลอาจมีวิธี "ส่ง" และอื่นๆ วัตถุยังมีคุณสมบัติที่อธิบายลักษณะเฉพาะของมันด้วย บันทึกฐานข้อมูลอาจมีคุณสมบัติ FirstName และ LastName
วัตถุ ASP.NET Date มีคุณสมบัติ Now (เขียนเป็น Date.Now) และคุณสมบัติ Now มีคุณสมบัติ Day (เขียนเป็น Date.Now.Day) ตัวอย่างต่อไปนี้สาธิตวิธีการเข้าถึงคุณสมบัติบางอย่างของออบเจ็กต์ Data:
<table> <tr> <th>ชื่อ</th> <td>มูลค่า</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:
@{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 = คำขอ["text1"];var num2 = คำขอ["text2"];var Total = num1.AsInt() + num2.AsInt();totalMessage = "ทั้งหมด = " + รวม;}} <html> <body style="พื้นหลัง-สี: 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= "ข้อความ" name="text2" /></p> <p><input type="submit" value=" เพิ่ม " /></p> </form> <p>@totalMessage </p> </body> </html>