آموزش ASP.Net به زبان ساده > آموزش ASP.Net Razor
درس دوم : ساختار دستوری 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
|
6
|
|
Hour
|
2
|
|
Minute
|
58
|
|
Second
|
31
|
|
ساختار دستوری شرطی ( 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>
|
|
خروجی
|
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :