Temel Özellikler
MVC Nedir?
MVC, Mpdel - View - Controller olarak neredeyse tüm web tabanlı projelerde karşımıza çıkmaktadır. En basit hali ile MVC'yi tanımlamak gerekirse; Model veri tabanımız ile bağlantı kurduğumuz yapı, View, sitemizi ziyaret eden kullanıcıların gördüğü ekran, Controller ise Model ile View arasında bağlantı kuran, web sayfalarımıza veri tabanımızdan içerik çekmemizi sağlayan bir yapılardır.
MVC web projelerinde Model, View ve Controller olarak 3 adet klasör oluşturulur. Model klasöründe veri tabanı ile ilgili işlemler tutulur. Database First yada Code First farketmeksizin yapılar burada tutulup çağırılabilir. Dosyalar class (.cs) yapısında oluşturulur. Controller klasöründe View sayfalarında görünecek verilerin gönderilmesi işlemi yapılır. Genellikle her ana View sayfasına bir Controller sayfası bulundurulur. Örneğin Home sayfası için HomeController adında bir Controller class ı oluşturulur. Burada Home sayfasında görünecek sayfaların methodları tutulur. Örneğin Index, Contact, About ... gibi. Bu methodlar bir View sayfası çağıracağı için IActionResult tipinde olamalıdır. View klasöründe ise sayfalarımız tutulur ve bunlar html yapısındadır (.cshtml). Ekranda görünmesini istediğimiz verileri burada çağırır ve web arayüzümüzü burada oluştururuz.
Bir Controller sayfasından gelen isteğe göre View sayfalarına yönlendirme 2 şekilde yapılabilir.
View Sayfalarına Veri Aktarım Çeşitleri
1. ViewBag
2. Model
3. ViewData
Model yollarını her sayfaya yazıp tanıtmaktansa modellerin bulunduğu Models klasörünü _ViewImports.cshtml de tanımlayıp tüm sayfalarda kolaylıkla çağırabiliriz.
Bir sayfayı tamamen parçalayabiliriz. Örneğin header, footer, navbar, sidebar gibi parçalayabiliriz. Bu sayfaları Shared klasöründe başında "_" işareti olacak şekilde bir sayfa oluştururuz. Örneğin _navbar.cshtml gibi. Daha sonra bu parçaladığımız yapıları ana layout ta birleştirmek için iki farklı yol kullanabiliriz.
Layout Sayfası İçin Section ve Render Kullanımı
Her sayfada görünecek olan tasarımlar Shared klasöründeki _Layout.cshtml sayfasına yazılır. Örneğin üst menü, sol menü, footer gibi. _ViewStart.cshtml sayfasında ise bu Layout u tüm sayfaların kullanacağını belirtmemiz gerekir.
1. Render (RenderBody)
_Layout.cshtml sayfasına yazılan @RenderBody()
kodu ile bu sayfayı kullanan tüm View sayfalarının içeriklerinin buraya gelmesini sağlarız. Bu sayede tek bir sayfa yapısı oluşturup, View sayfalarında sadece o sayfa ile ilgili içerikleri oluşturabiliriz.
2. Section
Bazı sayfalarda görünecek ancak bazı sayfalarda görünmeyecek bir yapımız olduğunda section lar kullanılır. Section kullanımı için _Layout.cshtml sayfasında bir @RenderSection()
oluşturmalıyız. Bu section a bir isim vererek @RenderSection("Sectionadi") gibi istenilen sayfanın bu section u kullanmasını sağlayabiliriz. Bir sayfada bu section u kullanmak için ise ilgili sayfaya
yazılmalıdır.
Last updated
Was this helpful?