آموزش 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 22
Hour 4
Minute 23
Second 30

ساختار دستوری شرطی ( 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 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1