کار با
اشیاء ( 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 به همراه توضیحات آن معرفی شده اند :
نام متد
|
کاربرد
|
href
|
این متد یک آدرس اینترنتی ( URL ) را بر حسب
پارامترهای داده شده ساخته ، که می توان از آن استفاده نمود .
|
( )RenderBody
|
این متد محتویات صفحه ای که درون پرانتز
مقابل آن تعیین می کنیم را در محل مورد نظر در صفحه وارد می کند .
|
( )RenderBody
|
این متد محتویات صفحه ای که درون پرانتز
مقابل آن تعیین می کنیم را در محل مورد نظر در صفحه وارد می کند .
|
( )RenderPage
|
این متد محتویات یک صفحه تعیین شده را در
صفحه مقصد و در محل مورد نظر وارد می کند ( معمولا در صفحات قالب استفاده
می شود ) .
|
( )RenderSection
|
این متد محتویات یک بخش یا Section تعیین شده
را در صفحه مقصد و در محل مورد نظر وارد می کند ( معمولا در صفحات قالب
استفاده می شود ) .
|
برخی از خواص مهم شی Page :
در لیست زیر به معرفی برخی از خواص مهم
و پرکاربرد شی Page به همراه توضیحات مربوطه پرداخته ایم :
نام متد
|
کاربرد
|
isPost
|
این خاصیت تعیین می کند که آیا صفحه برای
اولین بار است که اجرا و لود شده و یا اینکه پس از ارسال به سرور برگشته
است ( در این حالت مقدار آن True می باشد ) .
|
Layout
|
این خاصیت یک صفحه یا فایل را به عنوان قالب
سایت تعیین می کند .
|
Page
|
از این خاصیت برای دسترسی به برخی از خواص
داخلی صفحه مثل عنوان و ... استفاده می شود .
|
Request
|
این خاصیت مقادیر ارسالی یا دریافتی از
درخواست های HttpRequest ( مقادیر ارسالی از سوی فرم های وب ) را دریافت می
کند .
|
بررسی دقیقتر خاصیت Page شی Page
:
خاصیت Page شی 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>
|