0

آموزش MVC

 
mtk_designer
mtk_designer
کاربر برنزی
تاریخ عضویت : آذر 1390 
تعداد پست ها : 157

آموزش ASP.NET-مفهوم Layout
پنج شنبه 28 آبان 1394  7:46 AM

با استفاده از WebPage، خلق وبسایت با طرحی ثابت، راحت است.


نمای ثابت

در اینترنت، وبسایت های زیادی را با نمای ثابت می توانید پیدا کنید:

  • صفحات، header مشابهی دارند.
  • صفحات، footer مشابهی دارند.
  • صفحات، از استایل و قالب مشابهی پیروی می کنند.

با استفاده از WebPage، ایجاد نمای ثابت می تواند به صورت موثر انجام شود. بلوک های محتوا(content block)، مانند header و footer، می توانند به صورت فایل های مجزا باشند تا بتوان آن ها را در سایر صفحات استفاده کرد.

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


بلوک های محتوا

اکثر وب سایت ها شامل محتوایی هستند که در تمام صفحات نمایش داده می شود (مانند header و footer).

در WebPageها، می توانید با استفاده از متد (RenderPage@) محتوایی را از فایل های مجزا وارد صفحات نمایید.

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

با استفاده از header و footer به عنوان مثال، در کارهایی که شما باید انجام دهید صرفه جویی می شود. شما مجبور نیستید به ازای هر صفحه محتوای مشابه را یک بار بنویسید، و مهمتر اینکه هنگام تغییر فایل های header و footer، محتوا در تمام صفحات به روز می شود.

تکه کد زیر چگونگی استفاده از RenderPage را نمایش می دهد.

مثال

<html>
<body>
@RenderPage("header.cshtml")
<h1>Hello Web Pages</h1>
<p>This is a paragraph</p>
@RenderPage("footer.cshtml")
</body>
</html>

خروجی کد بالا:

This is a header from a separate file

Hello Web Pages

This is a paragraph

This is a footer from a separate file


استفاده از صفحه Layout

در قسمت قبل، ملاحظه فرمودید که استفاده از محتوای مشابه در صفحات کار ساده ای است.

رهیافت دیگری که برای ایجاد نمای ثابت می تواند به کار گرفته شود استفاده از صفحه layout است. صفحه layout شامل ساختار، و نه محتوای WebPage است. هنگامی که یک صفحه وب (صفحه محتوا) به صفحه layout لینک می شود، بر اساس صفحه layout (قالب) نمایش داده می شود.

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

هر صفحه محتوا باید با یک Layout directive شروع شود.

تکه کد زیر آن چه را شرح دادیم نمایش می دهد.

صفحه Layout:

<html>
<body>
<p>This is header text</p>
@RenderBody()
<p>&copy; 2013 Beyamooz. All rights reserved.</p>
</body>
</html>

 

سایر صفحات:

@{Layout="Layout.cshtml";}

<h1>Welcome to Beyamooz</h1>

<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laborisnisi ut aliquip ex ea commodo consequat.
</p>

خروجی کد بالا:

This is header text

Welcome to Beyamooz

Lorem ipsum dolor sit amet, consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laborisnisi ut aliquip ex  ea commodo consequat. Duis aute irure dolor inreprehenderit in voluptate velit esse cillum dolore eu fugiat  nullapariatur. Excepteur sint occaecat cupidatat non proident, sunt inculpa qui officia deserunt mollit anim id est laborum.

© 2013 Beyamooz. All rights reserved.


D.R.Y. - Don't Repeat Yourself

با استفاده از دو ابزار ASP.NET، یکی بلوک محتوا و دیگری صفحات Layout، می توانید به برنامه های کاربردی وب، نمای ثابت بدهید.

این ابزارها همچنین کار شما را کمتر می کند، زیرا شما نیاز ندارید تا اطلاعات مشابه را در صفحات خود تکرار کنید. متمرکز ساختن نشانه گذاری ها، استایل و کد، مدیریت و نگهداری برنامه های کاربردی وب را سهل الوصول می کند.


ممانعت از اینکه فایل ها مشاهده شوند

با استفاده از ASP.NET، فایلهایی که نام آن ها با یک (_) (زیر خط) آغاز می شوند، در وب مرور نمی شوند اگر نمی خواهید بلوک محتوایتان یا فایل های layout شما توسط کاربران مشاهده گردد، فایل ها را مانند زیر نامگذاری کنید:

header.cshtm_

footer.cshtml_

Layout.cshtml_


 مخفی کردن اطلاعات حساس

در ASP.NET، روش معمول برای مخفی کردن اطلاعات حساس (مانند رمز های عبور پایگاه داده، رمزهای پست الکترونیکی و غیره) نگهداری این اطلاعات در فایل مجزایی با نام AppStart_ است.

_AppStart.cshtml

@{
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "username@example.com";
WebMail.Password = "your-password";
WebMail.From = "your-name-here@example.com";
}

 

تشکرات از این پست
دسترسی سریع به انجمن ها