ساختار
دستوری ASP.Net Razor Syntax
آشنایی با ساختار دستوری Razor
Syntax :
قواعد کدنویسی با Razor همراه با
مثال در #C :
مجموع قواعد کدنویسی Razor با زبان #C
در ASP.Net به شرح زیر است :
-
بلوک های کد Razor در #C درون {
... } @ قرار می گیرند .
-
عبارت های درون ساخته ( مثل توابع
و متغیرها ) با علامت @ شروع می شوند .
-
برای تعریف متغیرها از عبارت کلیدی
var در ابتدای آنها استفاده می شود .
-
کدهای Razor در #C بایستی با علامت
; پایان یابند .
-
رشته های متنی بایستی درون دو
علامت " " تعریف شوند .
-
کدهای #C به حروف بزرگ و کوچک حساس
هستند .
-
صفحات HTML حاوی کدهای Razor دارای
پسوند cshtml. خواهند بود .
مثال : تمامی موارد
فوق را در مثال زیر می توانید مشاهده نمایید . در مثال زیر ابتذدا یک متغیر به نام
myMessage را تعریف کرده ایم . سپس آن را در پاراگراف بعدی به همراه یک متن
ایستاتیک به کاربر نمایش داده ایم . در بخش دوم که یک کد چند خطی است ، یک متغیر
متنی و یک متغیر زمانی تعریف نموده و یک جمله کامل با آنها ساخته ایم . سپس در
پایان صفحه پیام مورد نظر خود را در قالب یک پاراگراف نمایش داده ایم :
مثال
|
<!-- کد یک خطی -->
@{ var myMessage = "Hello World"; }
<!-- تعریف متغیر مورد نظر به صورت درون خطی
-->
<p>The value of myMessage is:
@myMessage</p>
<!-- کد چند خطی -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Today is: " + weekDay;
}
<p>The greeting is:
@greetingMessage</p>
|
خروجی
|
The value of myMessage is: Hello World
The greeting is: Welcome to our site! Here in Huston it is: Friday |
قواعد کدنویسی با Razor همراه با
مثال در VB :
مجموع قواعد کدنویسی Razor با زبان VB
در ASP.Net به شرح زیر است :
-
بلوک های کد Razor در VB درون Code
... End Code @ قرار می گیرند .
-
عبارت های درون ساخته ( مثل توابع
و متغیرها ) با علامت @ شروع می شوند .
-
برای تعریف متغیرها از عبارت کلیدی
Dim در ابتدای آنها استفاده می شود .
-
رشته های متنی بایستی درون دو
علامت " " تعریف شوند .
-
کدهای VB به حروف بزرگ و کوچک حساس
نیستند .
-
صفحات HTML حاوی کدهای Razor دارای
پسوند vbhtml. خواهند بود .
تمامی موارد فوق را در مثال زیر می
توانید مشاهده نمایید :
مثال
|
<!-- کد یک خطی -->
@Code dim myMessage = "Hello World" End Code
<!-- تعریف متغیرها به صورت دورن خطی -->
<p>The value of myMessage is:
@myMessage</p>
<!-- کد چند خطی -->
@Code
dim greeting = "Welcome to our site!"
dim weekDay = DateTime.Now.DayOfWeek
dim greetingMessage = greeting & " Today is: " & weekDay
End Code
<p>The greeting is: @greetingMessage</p>
|
خروجی
|
The value of myMessage is: Hello World
The greeting is: Welcome to our site! Here in Huston it is: Friday |
Razor چگونه کار می کند ؟
همانطور که قبلا اشاره کردیم ، Razor
یک ساختار دستوری ساده برای برنامه نویسی و اضافه کردن کدهای سمت سرور ( کدهایی که
بر روی سرور اجرا می شوند ) به صفحات وب است .
ساختار کدنویسی Razor بر مبنای چهارچوب کاری NET. بنا شده و می توانید به وسیله آن
، به راحتی نرم افزارهای تحت وب بسازید . Razor تمامی قدرت و قابلیت های ASP.Net را
در اختیار شما قرار می دهد ، با این تفاوت که برای تازه کاران ساده تر و برای حرفه
ای ها منعطف تر می باشد .
صفحات Razor را می توان اینگونه تعریف کرد : صفحات HTML ای که دارای 2 بخش هستند ،
محتویات HTML و کدهای Razor .
هنگامی که موتور پردازشگر سرور ، صفحه حاوی کدهای Razor را خوانده ، قبل از ارسال
صفحه به مرورگر ، کدهای برنامه نویسی شده را اجرا نموده و سپس نتایج حاصله را به
کامپیوتر کاربر ارسال می کند .
فرقی که کدهای سمت سرور نسبت به کدهای سمت کلاینت دارند ، این است که می توانید به
وسیله آنها کارهایی همچون اتصال به پایگاه داده ، پردازش اطلاعات ورودی کاربران و
... را انجام دهید . یا مثلا محتویات صفحه HTML را به صورت دینامیک تولید کنید ،
این کاری است که در مرورگر و سمت کلاینت نمی توانید انجام دهید .
صفحات ASP.Net حاوی کدهای Razor ، فرمت های ویژه ای دارند. در زبان #C فرمت cshtml
و در زبان VB فرمت vbhtml .
کار با اشیا ( Objects ) در
Razor :
در کدهای سمت سرور ، معمولا از اشیاء (
Objects ) استفاده می کنیم . برای مثال شی " Date " ، یکی از اشیای دورن ساخته
ASP.Net است که برای کار با تاریخ و زمان استفاده میشود . همچنین اشیاء می توانند
به صورت خود تعریف توسط کاربر نیز ساخته شوند ، مثل یک کادر متن ، یک رکورد داده ای
و ... .
اشیا همچنین دارای متدهایی هستند که امور خاصی را انجام می دهند . برای مثال یک شی
رکورد پایگاه داده می تواند شامل متدی مثل " Save " بوده ، تا اطلاعات آن را ذخیره
کند . یا مثلا شی email متدی جهت ارسال به نام " Send " داشته باشد .
همچنین اشیاء دارای خواصی هستند که خصوصیات و ویژگی های آنها را تشریح می کند .
برای مثال شی رکورد پایگاه داده می تواند خواصی مثل نام ( FirstName ) و یا نام
خانوادگی ( LastName ) باشد .
شی درون ساخته " Date " برای مثال دارای خاصیتی به نام " Now " است که تاریخ لحظه
جاری سیستم را اعلام می کند . خود خاصیت " Now " نیز دارای خواص گوناگون دیگری است
. مثل خاصیت " Day " که روز تاریخ جاری را مشخص می کند . برای مثال کد زیر نحوه
استفاده از این شی و خواص آنها را نشان می دهد :
مثال : در مثال زیر ، توسط دستورات ساده و یک خطی Razor ، تاریخ و
ساعت جاری سیستم را خوانده و سپس مقادیر روز ( Day ) ، ساعت ( Hour ) ، دقیقه (
Minute ) و ثانیه ( Second ) را در قالب یک جدول نمایش داده ایم :
مثال
|
<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>
</table>
|
خروجی
|
Name
|
Value
|
Day
|
14
|
Hour
|
10
|
Minute
|
1
|
Second
|
55
|
|
ساختار دستوری شرطی ( if ...
else Condition ) :
یکی از مهمترین قابلیت ها و ویژگی های
ساختار دستوری دینامیک مثل Razor ، امکان انجام دستورات یا تعیین محتویات صفحه ، بر
حسب مقادیر ورودی یا مقدار یک متغیر است .
این کار را می توان توسط ساختار های شرطی مثل ( if ... else ) انجام داد . برای
مثال اگر کاربر در یک کنترل انتخابی مقدار " Male " را انتخاب کرد ، یکسری دستورات
و در صورت انتخاب " Female " ، گروه دیگری از دستورات اجرا شوند .
مثال : مثال زیر نحوه استفاده از دستورات شرطی را نشان می دهد .
ابتدا توسط یک دستور DateTime.Now.Hour مقدار
ساعت جاری سیستم را خوانده و بر مبنای آن تصمیم گرفته شده است . اگر ساعت از 12
بیشتر باشد ، پیام " Good Evening " و در غیر اینصورت پیام " Good Morning " به
کاربر اعلام می شود .
مثال
|
@{
var txt = "";
if(DateTime.Now.Hour >
12)
{txt = "Good Evening";}
else
{txt = "Good Morning";}
}
<html>
<body>
<p>The message is @txt</p>
</body>
</html>
|
خروجی
|
Hello User : Good Morning
|
خواندن و پردازش ورودی های کاربر
:
یکی دیگر از قابلیت ها و امکانات ویژه
صفحات دینامیک ، امکان خواندن ورودی کاربران و پردازش آنهاست . سپس می توانید بر
مبنای این ورودی ها ، تصمیم های لازم را اتخاذ نمایید . در کد نویسی Razor ، مقادیر
وارد شده توسط کاربر توسط متد ( ) 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>
|
خروجی
|
|