2

Tek yaz çok kullan mantığını benimseyen ve bunu bize OOP kavramı ile aşılayan Microsoft firmasının ASP.NET içinde barındırdığı MasterPage yapısı şüphesiz birçok projemizde bizlere çok yardımcı olmuştur.

Elbette bizlere aynı kodu yeniden yazma zahmetinden kurtaran bu can simidinden ASP.NET MVC projelerinde de yararlanmaya devam edeceğiz. Ancak madem teknoloji değişti diyen Microsoft Firması MasterPage yapısını ve kullanımını da biraz değiştirmiş.

Öncelikle ASP.NET MVC projelerimizin görünüm yüzlerinin bulunduğu klasörümüzün View klasörü olduğunu yeniden hatırlayalım. Bu durumda MasterPage de bir görünüm yüzü olduğuna göre demek ki eklenecek klasör View klasörü olacaktır.

Projemize bir MasterPage ekleyebilmek için View Klasörüne sağ tuşla tıklayarak açılan menüden Add menüsününe ait alt menüden New Item seçeneğini seçtiğimizde karşımıza View Klasörümüze ekleyebileceğimiz dosya tiplerini barındıran Add New Item penceresi gelecektir.


Resim-1

Bu pencere içeriğinde MasterPage ismini barındıran MVC 4 View Master Page (ASPX) adında bir dosya tipi bulunmaktadır. İşte seni buldum diyerek eklemeyi düşünüyorsanız yanılıyorsunuz çünkü bu dosya tipi bizim MVC projelerimizde kullanacağımız dosya tipi değildir.

Nasıl değildir işte adı üstünde MasterPage yazıyor ya dediğinizi duyar gibiyim. Hemen açıklamaya geçelim.

  • Bizler ASP.NET MVC projelerimizde hangi teknolojiyi kullanıyorduk?

Elbette Razor.

  • Peki Razor teknolojisini kullandığımız projelerimizdeki görünüm dosyalarının uzantıları neydi?

ASPX yerine yeni teknolojiyi barındıran CSHTML

Bu durumda açılan penceredeki MasterPage dosyası parantez içine yazılmış olan ASPX açıklamasına göre eski teknolojiyi barındırmakta. Nostalji yapmayı düşünmediğimizden dolayı da şu anlık bizim işimize yaramamakta.

Peki işimize yarayan dosya tipi hangisidir?

Microsoft Firması ASP.NET MVC teknolojisine getirdiği Razor yapısı ile kullanılan MasterPage dosyasına ait yapıyı da değiştirdiğini yukarıda belirtmiştim. Yapı değişti kullanım değişti e tabi ismi de değişti ve ASP.NET projelerimizde Razor teknolojisi bünyesinde kullanılan MasterPage lerin yeni ismi Layout oldu.

Not: Layout tipindeki dosyalarımızın içeriği standart View dosyalarına ve bir sonraki makale konumuz olan Partial View dosyalarına benzediğinden dolayı isimlendirme işleminde standartlar gereği alt çizgi ile başlaması projenin farklı yazılımcılar tarafından kolay anlaşılabilmesini sağlamaktadır.

Add New Item penceresinden MVC 4 Layout Page (Razor) dosya tipini seçtikten sonra Add butonuna basarak View klasörümüze Layout dosyasını eklediğimizde karşımıza Layout dosyasına ait içerik gelmektedir.


Resim-2

Bu içerikte yeni karşılaştığımız RenderBody() komutu dikkatimizi çekmektedir. Peki ne işe yarar bu RenderBody() komutu?

RenderBody() komutu eski tip MasterPage yapısında bulunan ContentPlaceHolder kontrolünün Razor teknolojisi bünyesinde ki kullanımıdır. Yani MasterPage sayfamızı referans olarak alan View sayfalarına ait içeriğin gösterim anında basılacağı yerdir.

Şimdi projemize HomeController adında bir Controller ekledikten sonra Controller’imize ait Index adlı ActionResult tipindeki metodumuzun üzerinde sağ click yaparak açılan Add View seçeneğini seçelim.


Resim-3

Add View seçeneğini seçtiğimizde karşımıza Controllerimize ait View eklememizi sağlayan Add View penceresi gelecektir.


Resim-4

Bu pencere üzerinde bulunan “Use a layout or master page:” e ait checkboxı işaretleyerek View’ımızın bir MasterPage’i referans aldığını belirtiyoruz. Ardından aç butonuna (üçnokta) tıklayarak View’ımızın referans alacağı Layout sayfamızı seçiyoruz.


Resim-5

Layout sayfamızı seçtikten sonra OK butonuna tıklayarak yeniden karşımıza gelen Add View penceresinden Add butonuna tıkladığımızda artık layout sayfasından referans almış olan View sayfamız oluşturulmuş oluyor.


Resim-6

Artık View sayfamıza ait tasarım layout sayfamızdaki tasarımın RenderBody() metodunun bulunduğu yere eklenecek ve iki sayfanın tasarımı aynı anda görüntülenecektir.

Hemen test edebilmek için layout sayfamıza ait kodlarımızı


Resim-7

şeklinde değiştirdikten sonra View’imize ait kodlarımızı da


Resim-8

Şeklinde değiştirerek projemizi çalıştıralım.

Projemizi çalıştırdığımızda karşımıza aşağıdaki ekran görüntüsü gelecektir.


Resim-9

Bu makalemizde klasik ASP.NET Web projelerinde kullandığımız MasterPage yapısının ASP.NET MVC mimarisi içindeki karşılığı olan layout sayfa yapısını ve Razor teknolojisi içerisinde nasıl kullanıldığını inceledik.

Bir sonraki makalemizde ASP.NET MVC Framework projelerinde User Control kullanımını inceleyeceğiz.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

1981 İstanbul doğumlu Erkan KİLMEN. Programlamayla ilk olarak 2002 Yılında Visual Basic ile başlamıştır. Daha sonrasında bu dilin kendisine yetersiz olduğunu düşünerek Visual C++ ile programlama bilgisini daha ileriye taşımıştır. 2004 yılında .NET teknolojisiyle tanışmış ve bu dile merak sarmıştır. Halen Microsoft'un yeni vizyonu olan .NET teknolojileri üzerine çalışmalarını sürdürmektedir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (2)

  1. Çok başarılı bir makale hocam.. devamını bekliyoruz.

  2. 06/12/2015

    Verdiğiniz bilgiler için çok teşekkürler bi sorum varda bir Razor master page’inde(layout) birden fazla düzenlenebilir alan oluşturmak istersek ne yapmalıyız? Birden fazla @RederBody() yazarsak “@RederBody() zaten tanımlanmış” hatası alıyoruz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir