ASP.NET Razor - قوانین کد C# و VB

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 شرکت مایکروسافت است که به ویژه برای توسعه برنامه‌های وب طراحی شده است.

زبان برنامه‌نویسی Razor تمام قابلیت‌های ASP.NET را به شما ارائه می‌دهد، اما با استفاده از زبان ساده‌تری، بنابراین برای تازه‌کاران راحت‌تر برای یادگیری و برای متخصصان بهبود بهره‌وری کمک می‌کند.

صفحات وب Razor می‌توانند به عنوان صفحات HTML با دو نوع محتوا توصیف شوند: محتوای HTML و کد Razor.

وقتی سرور این نوع صفحه را می‌خواند، قبل از اینکه صفحه HTML به مرورگر ارسال شود، ابتدا کد Razor اجرا می‌شود. این کدهایی که روی سرور اجرا می‌شوند می‌توانند وظایفی را انجام دهند که در مرورگر قابل انجام نیستند، مانند دسترسی به پایگاه داده سرور. کد سرور می‌تواند محتوای HTML پویا را ایجاد کند که قبل از ارسال به مرورگر. از دید مرورگر، HTML تولید شده توسط کد سرور با محتوای HTML ثابت هیچ تفاوتی ندارد.

صفحات وب ASP.NET با استفاده از زبان Razor دارای拡سام فایل خاصی هستند cshtml (با استفاده از زبان Razor C#) یا vbhtml (با استفاده از زبان Razor VB).

کار با شیء‌ها

کد سرور اغلب شامل شیء‌ها است.

شیء "Date" یک شیء داخلی ASP.NET است، اما می‌توان شیء‌های خود را نیز تعریف کرد، مانند یک صفحه وب، یک فیلد متنی، یک فایل یا یک رکورد پایگاه داده و غیره.

شیء‌ها می‌توانند روش‌هایی داشته باشند که می‌توانند اجرا شوند. یک رکورد پایگاه داده می‌تواند روش «ذخیره‌سازی» را ارائه دهد، شیء تصویر می‌تواند روش «چرخش» داشته باشد، شیء ایمیل می‌تواند روش «فرستادن» ارائه دهد و غیره.

شیء‌ها همچنین می‌توانند ویژگی‌هایی داشته باشند که ویژگی‌های آنها را توصیف می‌کنند. یک رکورد پایگاه داده می‌تواند ویژگی‌های FirstName و LastName داشته باشد.

شیء Date در ASP.NET دارای ویژگی 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 = "شب بخیر";}
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 = "جمع = " + total;
    }
}
<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="text" name="text2" /></p>
<p><input type="submit" value="افزودن" /></p>
</form>
<p>@totalMessage</p>
</body>
</html>

اجرای مثال