Master Page Nedir? Ne İşe Yarar? Nasıl kullanılır?

Cybermer

Yazılım Ekibi Asistanı
22 Nis 2021
16
15
Merhaba değerli THT kullanıcıları. Ben Cybermer. Bugün, site tasarımında oldukça işimize yarayan Master Page konusuna değineceğiz.

1) Master Page Nedir? Ne İşe Yarar?
Genellikle web sitelerinde linklere tıkladıkça gelen sayfalarda bazı içerikler sabit olup, bazıları ise tıklanan linke göre değişmektedir. Örneğin; bir web sitesinde banner(Reklamların ve afiş başlıklarının konulduğu yer) veya sağ tarafta bulunan bir panel hep sabittir. Yani anasayfada, iletişim sayfasında veya başka bir sayfada bu kısımlar değişmez. Değişen kısım ,sayfa bilgilerinin olduğu içerik kısmıdır.

2) Peki Master Page nasıl kullanılır?
Sırasıyla şu adımları uygulayalım.
  • Visual Studio’yu açınız. Asp.Net Web Application 'ı seçiniz.
  • File menüsünden New Web Site komutunu vererek MasterPage adında boş bir site oluşturunuz.
  • Site klasöründe web.config dışında dosya varsa bunları siliniz.
  • Website menüsünden Add New Item komutu vererek yeni bir Master Page oluşturunuz. Burada Master Page seçeneğini seçiniz. Dosya adı MasterPage.master olsun. Kutucuklardan ‘Select Master Page’ seçeneğinin önündeki işareti (varsa) kaldırınız. ‘Place Code In Seperate File’ seçili durabilir.
  • Varsayılan kodlarıyla beraber bir master sayfası oluşturulur. Bu kodlarda iki şey önemli : Birincisi sayfa direktifi Page değil Master olarak başlıyor. İkincisi ise ContentPlaceHolder adındaki ASP.NET kontrolleri sayfaya eklenmiş.
  • ContentPlaceHolder kontrolü bizim içerik sayfalarımızın yer alacağı kısım. Yani ContentPlaceHolder dışında kalan yerler tüm sayfalarda ortak olacak. ContentPlaceHolder yazan yerlere ise ilgili sayfanın içeriği gelir.Master sayfamızda bunlardan otomatik olarak iki tane oluşturulur. Birisi head etiketleri arasında birisi ise body etiketleri arasında. İstediğimizi ekleyebiliriz. Ama head etiketleri arasındaki ContentPlaceHolder kontrolünü örnekte kullanmayacağımız için kaldırınız. Kullanacağımız kontrol body etiketleri arasındaki ContentPlaceHolder kontrolü. Biz sitede değişmeyecek olan kısımları bu kontrolün etrafına yerleştirmeliyiz. Aşağıdaki kodları MasterPage.master dosyasının body etiketi arasında kalan kısmına yerleştiriniz:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>


<title>Anasayfa</title>
//Anasayfa içeriği burada yer alır.
<asp:contentplaceholder id="head" runat="server">

</asp:contentplaceholder>

  • artık master sayfamız hazır. Sırada, master sayfamıza içerik sayfalarını yükleyelim.
  • Website menüsünden Add New Item komutu vererek yeni bir içerik sayfası oluşturunuz. Dosyanın adı Default.aspx olarak kalsın. Bu işlemin normal aspx dosyası eklemekten tek farkı Master Page kullanması. Dolayısıyla Add New Item penceresindeki aşağıdaki seçeneklerden ‘Select Master Page’ seçeneğinin işaretin seçili olması gerekiyor. ‘Place Code In Seperate File’ seçili kalabilir. Add butonuna bastığımızda bizden bu dosyayı hangi Master sayfasının içine yerleştireceğimizi soracaktır. Buradan MasterPage.master sayfasını seçelim.
  • Aşağıdaki kodları da Default.aspx sayfasına ekleyiniz:
<form id="form2" runat="server">
<div>
<h1>web siteye hoşgeldiniz.</h1>

<a href="default.aspx">Anasayfa</a> |
<a href="digersayfa.aspx">Diğer sayfa</a>
<hr/>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server" />
<hr/>
<p></p>
</div>

</form>
  • Son olarak, aynı şekilde DigerSayfa.aspx dosyasını oluşturunuz.



Master Page kullanmanın önemini son kez özetlersek :
Master Page kullanarak, değişen içerik kısmı dışında yer alan bölümlerin kodlarını her sayfada ayrı ayrı yazmak yerine Master Page kullanarak bir defada hallederiz. [Sitenin sağ kısmında bulunan panele yeni bir şeyler eklemek istedik. Bu durumda her sayfayı açıp gerekli kodu bütün sayfalara yazmamız gerekecekti. Master Page kullanarak, değişikliği sadece tek bir yerde yaparak bunun bütün siteye otomatik uygulanmasını sağlarız.]

Bu gibi sebeplerle beraber Master Page yapısı bir ihtiyaç haline gelmiştir.. Yani hayatta kolaylık sağlar.
:)
Hepinize iyi forumlar dilerim...
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.