يدعم 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 = "مرحبًا بك في موقعنا!";varweekDay = DateTime.Now.DayOfWeek;var GreetingMessage = Greeting + " هنا في هيوستن: " + يوم الأسبوع؛} <p>التحية هي: @greetingMessage </ص>
يتم تضمين كتل التعليمات البرمجية الحلاقة في @Code... رمز النهاية
التعبيرات المضمنة (المتغيرات والوظائف) تبدأ بـ @
يتم الإعلان عن المتغيرات باستخدام الكلمة الأساسية Dim
السلاسل المغلقة في علامات الاقتباس
رمز VB ليس حساسًا لحالة الأحرف
ملحق ملفات VB هو .vbhtml
<!-- كتلة عبارة مفردة --> @Code dim myMessage = "Hello World" رمز النهاية <!-- تعبير سطري أو متغير --> <p>قيمة myMessage هي: @myMessage </p> <!-- كتلة متعددة البيانات --> @Codedim Greeting = "مرحبًا بك في موقعنا dimweekDay = DateTime.Now.DayOfWeek dim GreetingMessage = Greeting & "هنا في هيوستن: " & WeekDayEnd Code. <p>التحية هي: @greetingMessage </ص>
Razor هو بناء جملة برمجة بسيط لتضمين كود الخادم في صفحات الويب.
يعتمد بناء جملة 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).
غالبًا ما يتضمن ترميز الخادم كائنات. كائن "التاريخ" هو كائن ASP.NET نموذجي مضمن، ولكن يمكن أن يكون الكائن أيضًا كائنًا مخصصًا، أو صفحة ويب، أو مربع نص، أو ملفًا، أو سجل قاعدة بيانات، وما إلى ذلك. الكائنات لديها طرق للتنفيذ. قد يشتمل سجل قاعدة البيانات على طريقة "حفظ"، وقد يشتمل كائن الصورة على طريقة "تدوير"، وقد يشتمل كائن البريد الإلكتروني على طريقة "إرسال"، وما إلى ذلك. الكائنات أيضًا لها خصائص تصف خصائصها. قد يحتوي سجل قاعدة البيانات على خصائص الاسم الأول واسم العائلة.
يحتوي كائن التاريخ ASP.NET على خاصية Now (مكتوبة باسم Date.Now)، وتحتوي خاصية Now على خاصية Day (مكتوبة باسم Date.Now.Day). يوضح المثال التالي كيفية الوصول إلى بعض خصائص كائن البيانات:
<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>Second</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 = Request["text1"];var num2 = Request["text2"];var Total = num1.AsInt() + num2.AsInt();totalMessage = "الإجمالي =" + الإجمالي؛}} <html> <body style="background-color: 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>