دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۵
  • شهریور

جلسه ۲۹ : نمای طراحی در ASP.NET MVC

  • دسته‌بندی‌ها :
جلسه ۲۹ : نمای طراحی در ASP.NET MVC
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش ASP.NET MVC ، را دنبال می کنند. یک برنامه ممکن است شامل بخش های رایج رابط کاربری باشد که از جمله می توان به بخش های آرم، هدر، نوار ناوبری سمت چپ، نوار راست یا بخش بالا و پایین صفحه اشاره کرد. ASP.NET MVC یک  layout view (نمایه طراحی) را که حاوی این قسمت های مشترک است را معرفی کرد، با استفاده از layout view در ASP.NET MVC ما مجبور نیستیم همان کد را در هر صفحه بنویسیم. نمایه طراحی مشابه master page برنامه وب فرم ASP.NET است. در این بخش به بررسی مباحثی در خصوص نمای طراحی در ASP.NET MVC می پردازیم.

      نمای طراحی در ASP.NET MVC

      در این بخش به شما مباحثی را پیرامون layout view در  ASP.NET MVC خواهیم آموخت.

      یک صفحه وب معمولا شامل بخش های Header ، منوی راست یا چپ و footer است. این بخش ها در هر صفحه مشترک بوده و تنها بخش های مرکزی ، تغییر می کنند:

      نمای طراحی در ASP.NET MVC

      نمای طراحی در ASP.NET MVC اجازه می دهد تا شما یک قالب سایت مشترک را تعریف کنید که می تواند در چندین نمایه به ارث برده شود.

      استفاده از نمای طراحی (layout view) به منظور حذف کدهای تکرار و افزایش سرعت برنامه بسیار ساده و آسان است.

      در شکل فوق، نمای طراحی شامل بخش های Header ، منوی راست و چپ ، بخش مرکزی و Footer (پاصفحه) است، که بخش مرکزی پویا بوده و در هرصفحه وب متغیر است.

      بخش مرکزی طراحی

      نمای طراحی Rozar همانند نماهای دیگر نظیر .cshtml یا .vbhtml است. نمایه های طراحی مشترک در فولدر Shared ذخیره می شوند.

      برای مثال زمانیکه ما اولین برنامه ی mvc خود را در بخش های قبلی ایجاد کردیم، نمایه Layout.cshtml_ را نیز در فولدر Shared ایجاد کردیم.

      نمایه layout

      در کد مثال زیر بصورت خودکار نمایه ی Layout.cshtml_ ایجاد می شود:

      مثال : 

      همانطور که در کد فوق مشاهده می کنید نمایه طراحی شامل بخش های اصلی Doctype ، head ، body است. و فقط بخش هایی که با متدهای ()RenderBody و ()RenderSection فراخوانی می شوند متفاوت است. RenderBody برای نمایش بخش های انعطاف پذیر طراحی بکار می رود.

      به عنوان مثال Index.cshtml در فولدر home در نمای طراحی قرار می گیرد. در جایی که متد ()RenderBody فراخوانی می شود.

      استفاده از layout view در  ASP.NET MVC

      می توانید با استفاده از _ViewStart.cshtml از طریق متد _ViewStart.cshtml نمای چیدمان را تنظیم کنید.

      همچنین می توانید نام نمای طراحی را در متد اجرایی مشخص کنید.

      _ViewStart.cshtml بصورت پیش فرض شامل فولدر Views می شود. که نمایه طراحی پیش فرض را برای تمام نمایه ها در فولدر قرار می دهد.

      شما می توانید یک مسیر معتبر را برای هر طراحی صفحه در ویژگی Layout قرار دهید.

      برای مثال فایل _ViewStart.cshtml در فولدر Views ، ویژگی Layout را به آدرس  “~/Views/Shared/_Layout.cshtml” تنطیم می کند.

      سپس _layout.cshtml به عنوان نمایه طراحی برای تمام نمایه ها در زیر فولدرها خواهد شد.

      بنابراین تمام نمایه ها صفحه طراحی پیش فرض را  _ViewStart.cshtml در فولدر Views می گیرند.

      نمایه طراحی اصلی

      همچنین فایل _ViewStart.cshtml می تواند در زیر فولدرهای View به عنوان طراحی پیش فرض برای تمام نمایه ها مشخص شود.

      برای مثال فایل _ViewStart.cshtml در فولدر Home ویژگی Layout را با _myLayoutPage.cshtml تنظیم می کند.

      بنابراین _ViewStart.cshtml بر روی تمام نمایه ها در فولدر Home تاثیر می گذارد.

      بنابراین نمایه های _myLayoutPage.cshtml به جای  _Layout.cshml بارگذاری می شوند.

      نتایج نمایه طراحی

      شما همچنین می توانید صفحه تنظیمات پیش فرض _ViewStart.cshtml را با تنظیم خصوصیت Layout در هر نمای .cshtml غیرفعال کنید. برای مثال، نمای Index زیر از _myLayoutPage.cshtml استفاده می کند، حتی اگر _ViewStart.cshtml _Layout.cshtml را تنظیم کند.

      مثال : 

      در مثال زیر متد () View نمای Index view را با استفاده از _myLayoutPage.cshtml بارگذاری می کند:

      مثال : 

      متدهای Rendering

      فریم ورک MVC با استفاده از دو متد زیر نمایه های زیر مجموعه را بارگذاری می کند:

      • ()RenderBody
      • (نام رشته)RenderSection

      شکل زیر چگونگی استفاده از متدهای RenderBody و RenderSection را نشان می دهد:

      چگونگی استفاده از متدهای RenderBody و RenderSection

      همانطور که در شکل بالا می بینید، _Layout.cshtml شامل متدهای ()RenderBody و ()RenderSection است.

      متد RenderSection نام بخش هایی از قبیل LeftSection، MiddleSection و RightSection را در شکل بالا مشخص می کند.

      Index.cshtml هر بخش را با استفاده از section تعریف می کند که نام هر قسمت با نام مشخص شده در متد RenderSection از _Layout.cshtml، مانندSection RightSection و غیره مطابقت دارد.

      در زمان اجرا، بخش های نامشخص از Index.cshtml مانند LeftSection، RightSection و MiddleSection در مکان مناسب که RenderSection نامیده می شود ارائه می شود.

      بقیه بخش نمایش Index، که در هیچ کدام از بخش ها فراخوانی نمی شود، در صورت استفاده از متد () RenderBody فراخوانی خواهد شد.

      نکات زیر را به خاطر بسپارید:

      ۱- Layout view (نمای اصلی طراحی) شامل بخش های عمومی یک طراحی است، که مشابه masterpage در ASP.NET عمل می کند.

      ۲- فایل _ViewStart.cshtml می تواند برای تشخیص مسیر نمای طراحی استفاده شود که به تمام نمایه های فولدر و زیر فولدرها اعمال خواهد شد.

      ۳- شما می توانید ویژگی های طراحی را در نمای شخصی تنظیم کنید تا ویژگی های پیش فرض در  _ViewStart.cshtml استفاده نشود.

      ۴- نمای طراحی از دو متد ()RenderBody و ()RenderSection استفاده می کند.

      ۵- RenderBody فقط می تواند یکبار در نمای طراحی استفاده شود، در حالیکه متد RenderSection می تواند در زمانهای مختلف و با نام ها ی گوناگون فراخوانی شود.

      ۶- متد RenderBody تمام محتوای نمایه را در بخش نامگذاری شده بارگذاری می کند.

      ۷- متد RenderSection محتوای داخل یک نمایه را در بخش نامگذاری شده بارگذاری می کند.

      ۸- RenderSection را می توان بطور ضروری یا اختیاری تنظیم کرد. اگر ضروری باشد سپس تمام نمایه های زیر مجموعه باید شامل بخش نامیده شده باشد.

      کلام آخر

      با استفاده از نمای طراحی در ASP.NET MVC می توانید کدهای html تکراری را از صفحات وب خود حذف کرده و با اینکار هم سرعت طراحی را افزایش داده و هم حجم کدهای صفحات وب خود را به اندازه ی قابل توجهی کم کنید. در بخش بعدی به چگونگی ایجاد  layout view می پردازیم.

       

      QR:  جلسه ۲۹ : نمای طراحی در ASP.NET MVC
      به اشتراک بگذارید