1. View Katmanı

VIEW 

Projede View kısmı web site açıldıgında kullanıcinın gördüğü kısma denk gelir yani sitenin görünen tarafı ön yüzü, sizin siteyi açtığınızda karşılaştıgınız kısım ASP.NET MVC projelerinde VIEW kısmında kodlanır. Bu kısım sitenin görsel kısmı olduğuna göre doğal olarak bu kısımdaki kodların %90-95 kadarı HTML-XHTML , CSS , JavaScript vb front endlerden oluşmaktadır. Sizin karşınıza çıkan ekranda yaptığınız her işlemde view üzerinden controller’a gider ve sunucu tarafından değerlendirilir.

Viewların uzantısı cshtmldir.

 

 CONTROLLERDAN VİEW’A VERİ GÖNDERME 

Zaman zaman controllerdan bilgileri alıp view’da görüntülememiz gerekebilir. Bunun için bazı  yöntemler vardır bunlar 

  1. ViewBag 
  1. ViewData 
  1. TempData 

 

  VIEWBAG 

viewBag.DegiskenIsmı = “Deger”;  

seklinde tanımlanır. 

 View içerisinde de @ViewBag.DegiskenIs olarak kullanılabilir.

  VIEWDATA 

ViewData[“UrunAdi”] = “Deger”; 

 View içerisinde de @ViewData[“UrunAdi”] ile kullanılabilir. 


TEMPDATA

TempData[“Mesaj”]=”Deger”; 

 View içerisinde de @TempData[“UrunAdi”] ile kullanılabilir. 

 Aralarındaki fark ?  

TempData’yı başka Viewlardan da görüntüleyebilirken ViewData ve ViewBag’ı görüntüleyemeyiz. 

TempData geçicidir f5ten sonra yeni bir postta yok olur 

 LAYOUT OLUŞTURMA

Bazı sitelerde ne kadar sayfa değiştirirseniz değiştirin bazı bölümler sabittir. Mesela sitedeki butonlar kısmı anasayfa kısmı bazı kısımlar siz ne kadar sayfa değiştirirseniz değiştirin sabittir. Bunlar madem sabit bunların her birini ayrı ayrı sayfalarda tekrar tanımlamak mantıksızlıgın daniskasıdır. İşte layout tam da bu noktada devreye girer. Sizin her sayfada tanımladıgınız ortak frame outlar bir noktada tanımlanır ve ortak olan tüm sayfalarda kullanılır. 

Yukarida bir layout ornegi görmektesiniz. Bu layoutu kullanıdınız tüm viewlarda burda belirlenen kısımlar otomatik olarak yerleşir. O viewda kullanılacak kısımlar ise @RenderBody() yazan yerde tanımlanır yani @RenderBody sizin diğer viewlarınızdaki değişken kısımdır. 

 

İç içe layout oluşturma 

 

Parçalı Layout

 

@RenderPage()    layout içinde tek bir bölümün değişmesine izin verirsek 

@RenderSection(“Seciton ismi”,”Gecerlilikboolean”)  Birden fazla kısmın değişmesini istiyorsak bu metodu kullan ırız 

PARTIAL VIEW 

Yeni bir view tanımlanır bu shared’da tanımlanır ve içine değişken bilgiler konur sonra diğer telefonlarda  @Html.Partal(“viewIsmi”) olarak kullanılır 

 

 VIEWSTART 

View startı kullanarak layoutları tek tek view’a tanımlamadan varsayılan view olarak kullanıp her viewda otomatik başlamasını sağlayabilirsiniz. Normal şekilde view shared kısmında layout oluşturukur. Daha sonra views/shared/_Layout.cshtml klasörüne girilir. Oluşturdugumuz layout varsayılan layout kısmına yazılır. Bundan sonra her view’ın layoutu otomatik olarak tanımlanmıştır