کار با اشیاء ( Objects ) در ASP.Net Web Pages

مقدمه :

در صفحات ASP.Net ، به صورت معمول از اشیا ( Objects ) استفاده می کنیم . اشیا دارای خواص و متدهایی هستند که می توانند اطلاعات مورد نظر ما را نگهداری کرده و برخی عملیات ها را انجام دهند . در این درس به صورت اختصاصی به بررسی شی Page ، به عنوان مهمترین شی در یک صفحه ASP.Net خواهیم پرداخت .

آشنایی با شی صفحه ( Page Object ) در ASP.Net :

در مراحل و درس های قبل با برخی از خواص و متدهای شی Page کار کردیم . در این بخش با تکرار برخی از این متدها و خواص ، به یادآوری آنها می پردازیم .
به قطعه کد زیر دقت نمایید . این کد باعث اجرا و قرار گرفتن محتویات یک صفحه درون یک صفحه دیگر ASP.Net می شود . کد زیر صفحه " header.cshtml " را خوانده و در محل قرار گیری متد در صفحه نمایش می دهد :

کد

@RenderPage( " header.cshtml " )
@RenderBody( )

در قطعه کد بعدی به بررسی یکی از مهمترین و پر کاربردترین خواص شی Page می پردازیم . همانطور که می دانید یک صفحه ASP.Net ، صفحه ای است که سمت سرور اجرا می شود و به طور کلی دارای دو وضعیت است :

  • برای اولین بار است که اجرا می شود . در این حالت می گوییم صفحه Post نشده است .

  • صفحه به دلیل کلیک کاربر بر روی یک دکمه فرمان یا اجرای یک متد به سرور ارسال ( Post ) شده و باز گشته است . در این حالت می گوییم ، صفحه Post شده است .

در حالت اول مقدار خاصیت isPost صفحه False و در حالت دوم True است . از این خاصیت می توان برای تعیین نحوه و زمان اجرای برخی کدها استفاده کرد . برای مثال می خواهیم یک کد زمانی اجرا شود که صفحه از سرور برگشته ( به عبارت دیگر Post شده و اولین بار نیست که اجرا می شود ) . برای مثال پس از تکمیل یک فرم در صفحه توسط کاربر و بارگذاری مجدد صفحه برای نمایش نتایج . همانند قطعه کد زیر :

مثال :  در مثال زیر ، کدهای آبی رنگ فقط در صورتی اجرا می شوند که مقدار خاصیت isPost بر روی True بوده و در واقع صفحه از سرور بازگشته باشد :

کد

If (isPost) {
      if (Request["Choice"] != null )
                   {
                         یکسری دستورات مورد نظر
                   }

 

برخی دیگر از متدهای مهم شی Page :

در لیست زیر برخی دیگر از خواص مهم و پر کاربرد شی Page به همراه توضیحات آن معرفی شده اند :

مجموعه خواص border

نام متد

کاربرد

href

این متد یک آدرس اینترنتی ( URL ) را بر حسب پارامترهای داده شده ساخته ، که می توان از آن استفاده نمود .

( )RenderBody

این متد محتویات صفحه ای که درون پرانتز مقابل آن تعیین می کنیم را در محل مورد نظر در صفحه وارد می کند .

( )RenderBody

این متد محتویات صفحه ای که درون پرانتز مقابل آن تعیین می کنیم را در محل مورد نظر در صفحه وارد می کند .

( )RenderPage

این متد محتویات یک صفحه تعیین شده را در صفحه مقصد و در محل مورد نظر وارد می کند ( معمولا در صفحات قالب استفاده می شود ) .

( )RenderSection

این متد محتویات یک بخش یا Section تعیین شده را در صفحه مقصد و در محل مورد نظر وارد می کند ( معمولا در صفحات قالب استفاده می شود ) .

برخی از خواص مهم شی Page :

در لیست زیر به معرفی برخی از خواص مهم و پرکاربرد شی Page به همراه توضیحات مربوطه پرداخته ایم :

مجموعه خواص border

نام متد

کاربرد

isPost

این خاصیت تعیین می کند که آیا صفحه برای اولین بار است که اجرا و لود شده و یا اینکه پس از ارسال به سرور برگشته است ( در این حالت مقدار آن True می باشد ) .

Layout

این خاصیت یک صفحه یا فایل را به عنوان قالب سایت تعیین می کند .

Page

از این خاصیت برای دسترسی به برخی از خواص داخلی صفحه مثل عنوان و ... استفاده می شود .

Request

این خاصیت مقادیر ارسالی یا دریافتی از درخواست های HttpRequest ( مقادیر ارسالی از سوی فرم های وب ) را دریافت می کند .

بررسی دقیقتر خاصیت Page شی Page :

خاصیت Page شی Page ، امکان دسترسی به برخی از خواص داخلی صفحه مثل عنوان ، ورژن و ... را می دهد . همچنین می توانید خواص مورد نظر خود را توسط این شی ساخته و سپس در سطح کد صفحه استفاده نمایید . برای مثال ما خواص زیر را برای صفحه خود تعریف کرده ایم :

  • Pag.Title : عنوان صفحه .

  • Page.Version : ورژن صفحه .

  • هر خاصیت دیگر.Page : هرگونه با هر نام دلخواه و ... .

خاصیت Page شی Page بسیار می تواند کاربردی و مفید باشد . برای مثال می توانید توسط یک خاصیت دلخواه عنوان صفحه را در فایل محتوا ( Content ) تعیین نموده و از همان خاصیت در صفحه قالب ( Layout ) استفاده نمایید . همانند قطعه کد زیر :

مثال :  در مثال زیر در ابتدای صفحه محتوا ، صفحه Layout.cshtml به عنوان صفحه قالب صفحه محتوا تعیین شده و سپس توسط خاصیت Title عنوان صفحه نیز مشخص شده است .
سپس همان عنوان یا title را در فایل قالب نیز به کار برده ایم . توجه داشته باشید ، خروجی این دو صفحه یک صفحه است که از ترکیب صفحه محتوا و صفحه قالب به وجود می آید . محتویات صفحه محتوا در قسمتی که کد ( )RenderBody وجود دارد ، قرار گرفته و با صفحه قالب یکی می شود .

کد صفحه محتوا
Home.cshtml

@{
    Layout="~/Shared/Layout.cshtml";
    Page.Title="Home Page"
   }


<h1>Welcome to Developer1</h1>
<h2>محتویات صفحه</h2>
<p>A Home Page (Default.cshtml)</p>
<p>A Layout File (Layout.cshtml)</p>
<p>A Style Sheet (Site.css)</p>
 

کد صفحه قالب
Layout.cshtml

<!DOCTYPE html>
<html>
  <head>
     <title>@Page.Title</title>
  </head>
  <body>
      @RenderBody( )
  </body>
</html>


 
Web hosting by Somee.com