ASP.NET Razor - C # و VB Code Syntax
يدعم Razor كلاً من C # (C حاد) و VB (Visual Basic).
قواعد تركيب ماكينة الحلاقة الرئيسية لـ C #
- يتم تضمين كتل رموز الشفرة في @ {...}
- تبدأ التعبيرات المضمنة (المتغيرات والدوال) بـ @
- تنتهي عبارات الكود بفاصلة منقوطة
- يتم التصريح عن المتغيرات بالكلمة var
- يتم إحاطة السلاسل بعلامات اقتباس
- كود C # حساس لحالة الأحرف
- C # لها الامتداد .cshtml
C # مثال
<!-- 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>
قواعد بناء الجملة الرئيسية لماكينة الحلاقة VB
- يتم تضمين كتل كود الشفرة في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 ، وهو جزء من Microsoft.NET Framework المصمم خصيصًا لإنشاء تطبيقات الويب.
يمنحك بناء جملة Razor كل قوة ASP.NET ، ولكنه يستخدم بنية مبسطة يسهل تعلمها إذا كنت مبتدئًا ، وتجعلك أكثر إنتاجية إذا كنت خبيرًا.
يمكن وصف صفحات الويب الخاصة بـ Razor على أنها صفحات HTML ذات نوعين من المحتوى: محتوى HTML وشفرة Razor.
عندما يقرأ الخادم الصفحة ، يقوم بتشغيل شفرة Razor أولاً ، قبل أن يرسل صفحة HTML إلى المتصفح. يمكن أن يؤدي الرمز الذي يتم تنفيذه على الخادم مهام لا يمكن القيام بها في المستعرض ، على سبيل المثال الوصول إلى قاعدة بيانات الخادم. يمكن لتعليمات الخادم إنشاء محتوى HTML ديناميكي بسرعة فائقة قبل إرسالها إلى المتصفح. من خلال المستعرض ، لا يختلف HTML الذي تم إنشاؤه بواسطة رمز الخادم عن محتوى HTML الثابت.
تحتوي صفحات الويب ASP.NET التي تحتوي على بنية Razor على ملحق ملف خاص cshtml (Razor using C #) أو vbhtml (Razor using VB).
العمل مع الكائنات
غالبًا ما يتضمن ترميز الخادم كائنات.
كائن "DateTime" هو كائن ASP.NET مضمن نموذجي ، ولكن يمكن أيضًا أن تكون الكائنات محددة ذاتيًا ، أو صفحة ويب ، أو مربع نص ، أو ملف ، أو سجل قاعدة بيانات ، وما إلى ذلك.
قد يكون للكائنات طرق يمكن أن تؤديها. قد يحتوي سجل قاعدة البيانات على طريقة "حفظ" ، وقد يكون لكائن الصورة طريقة "تدوير" ، وقد يحتوي كائن البريد الإلكتروني على طريقة "إرسال" ، وهكذا.
تحتوي الكائنات أيضًا على خصائص تصف خصائصها. قد يحتوي سجل قاعدة البيانات على خاصية FirstName و LastName (من بين أمور أخرى).
يحتوي كائن ASP.NET DateTime على خاصية Now (مكتوبة كـ DateTime.Now) ، وتحتوي الخاصية Now على خاصية Day (مكتوبة كـ DateTime.Now.Day). يوضح المثال أدناه كيفية الوصول إلى بعض خصائص كائن التاريخ والوقت:
مثال
<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:
مثال
@{
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>