ASP.NET Master Page Kullanımı
23-11-2013
Bir alışveriş sitesi ya da başka sitelerde bir linki tıklasanızda bazı bölümlerin her sayfada sabit kaldığını görmüşsünüzdür. Biz de örneğin bir alış veriş sitesinde kategorilerden elektronik bölümünü seçtiğinizde orta kısımda elektronik ürünler gözükürken en üstte sitenin adı/sloganı vs , genellikle sol kısımda kategoriler ve en altta da copyright vs değişmediği bir site yapmak istediğimizi varsayalım. Her bir sayfada bu sabit kalmasını istediğimiz bölümleri kopyala-yapıştır ile yapmış olalım. Sonradan yeni bir kategori daha eklemek yada herhangi bir değişiklik yapmak istediğimizde bu oluşturduğumuz tüm sayfalarda kopyala-yapıştır bölümünde değişiklik yapmamız gerekecek. Bu işlemde zaman kaybı demek. Bu nedenle masterpage geliştirilmiş. Masterpage ile bu sabit kalmasını istediğimiz ve herbir sayfada değiştirilmesini istediğimiz bölümleri belirtiyoruz. Daha sonra masterpage’i kullanan yeni sayfalar oluşturuyoruz. Bu sayfaları oluşturduğunuzda sabit bölümler otomatik olarak oluşuyor ve biz sadece değiştirilmesi izinli yeri değiştirebiliyoruz. Böylece sonradan bir değişiklik yapmak istediğimizde sadece masterpage’de yaptığımız değişiklikler tüm sayfalarda gözükecek, yani bütün sayfalarda tek tek değişiklik yapmamıza gerek kalmıyor.
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="AspProjelerim.Site1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> <p> Hello World </p> </asp:ContentPlaceHolder> </div> </form> </body> </html>Yukarıdaki sayfa .master sayfası. Şimdi bu sayfayı bir aspx sayfasında kullanalım :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="AspProjelerim.WebForm3" MasterPageFile="~/GenelCalismalar/Site1.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <p>Override Edildi</p> </asp:Content>Dikkat ederseniz aspx sayfasında <html>,<head>,<body> elementleri yok çünkü .master sayfasında bunların hepsi vardır.