amerika gazete haberleri haberler
Yazılım

MVC – Render Section Olayı

Web siteleri genel olarak yukarıdaki göstermiş olduğumuz şablonlar üzerine kurulur. Genelde bir üst kısım, gövde kısmının sabit bir alanı ve alt kısım olmak üzere ayırılırlar. Burada bizim içeriği değiştireceğimiz kısım, koyu renk ile gösterilen gövde kısmı olur genelde. Onun dışında üst kısmı, sol kısmı ve alt kısmı her seferinde değiştirmek zorunda kalmayız. Bir web sitesine girip incelerseniz, yukarda gördüğüm mantığı görmüş olabilirsiniz.

Sıradan bir haber sitesini açın, üst kısımda haber sitesinin logosu, menüler, hava durumu vs. gibi bilgiler yer alır. Sağ tarafta kategoriler ve bazı haberler yer alır. Altta yine menü tarzında, etiletler tarzında bir bölüm yer alır. Bunlar her haber için sabittir ve haber içeriğine göre değişmezler.

Bu duruma daha önce “Master Page” adı veriliyordu. Şimdi ise isimler değişiyor, çalışma şekilleri değişiyor ama mantık her zaman olduğu gibi yine aynı. “Shared” klasörünün altında “_layout.cshtml” dosyası default olarak size masterpage olarak atanır. Siz eğer değişiklik yapmak isterseniz, yeni bir layout oluşturarak, farklı sayfaları, farklı görünümlerde gösterme şansına sahip olabilirsiniz.

Bunun için yapmamız gereken basit, kısaca özet olarak geçelim.

Turuncu olan alanlardan bir tanesinde, bir bölgede siyah alan içerisinden müdahale etmek isterseniz, diyelim ki sol sütunun en altına “Şu an bu sayfadasınız : Fenerbahçe gol attı” yazdıracaksınız. Bunun için masterpage olarak kullanılan Layout dosyamızı açıyoruz, sol sütunun altındaki gerekli yere;

@RenderSection("sayfaadi")

Olarak, buraya diğer sayfada “sayfaadi” içerisinden veri göndermemiz mümkün. Fakat burada şöyle bir sorun yaşıyoruz. Örneğin bu sayfayı iletişim sayfasında da kullanıyorsak ve iletişim sayfasından bu sayfa adını göndermek istemezsek boş bıraktığımızda hata verecek. Bunun için;

@RenderSection("sayfaadi",false)

yapmamız gerekiyor. Bunu yaptığımızda eğer sayfaadi kısmına siyah kısımdan veri göndermezsek de hata vermeden çalışacaktır. Bizim amacımız da az hatayla çok iş yapmak olduğu için bu şekilde kullanım bizim için daha doğru olacaktır. Şimdi bu sayfada verinin geleceği yeri hazırladık. Her şey hazır, peki siyah kısımdan buraya veriyi nasıl göndereceğiz?

Örneğin, hakkımızda sayfası üzerinden kodlarımızı yazıyoruz ve hakkımızda sayfasından sağ taraftaki sütuna sayfa adı göndereceğiz. O halde;

@section sayfaadi{
Sayfa Adımız : "Hakkımızda"
}

Sayfanın üst kısmına bunu eklediğimizde, sağ kolondaki “sayfaadi” olan alanı bulup, içerisine Sayfa Adımız : “Hakkımızda” yazdıracaktır.

Bu konunun anlaşılması için basit bir örnek üzerinden gittik. Bunu daha farklı alanlarda da kullanıyor olabilirsiniz. Sağ kolondaki reklamı düzenlerken, kullanıcının giriş yapıp yapmadığını sorgulayıp üst kısımda getireceğiniz menüyü sorgularken vesaire.. Şu an bildiğimiz şey şu, sabit sayfa tasarımlarında çalışırken de, sabit olan sayfanın içerisine “buraya diğer sayfalardan veri gönderebilirim haberin olsun” diyerek o sayfayı uyarıyoruz. Hatta “veri gelmezse hata verme” diyoruz. Sonrasında da hakkımızda sayfasına gelip, “sayfaadi” olan render’i bul ve onun için şunu yaz diyoruz. Daha sonrasında sayfamızın olduğu dosya ile, layout dosyası kendi arasında meselelerini hallediyor.

Kısaca MasterPage mantığı üzerinden geçtik. MVC’de MasterPage olmadığını fakat, bu mantığa çok benzer nitelikte farklı işlemleri yapan fonksiyonların olduğunu gördük ve ona göre nasıl veri aktarımı yapacağımızı öğrenmiş olduk.

İlgili Makaleler

Başa dön tuşu
İstanbul evden eve nakliyat izmir dijital ajans dijital pazarlama