Bir önceki makalemizde ASP.NET MVC3’te Razor View Engine’ine giriş yapmıştık. Şimdi Razor’da MasterPage nasıl oluşturuluyor ve kullanılıyor inceleyelim.
ASP.NET MVC 3 Web Application - Internet Application oluşturduğumuzda Views/_ViewStart.cshtml dosyasını incelediğimizde Layout isminde bir özellikle karşılaşacağız. Bu dosya, MasterPage’imizi (MVC 3’teki yeni ismiyle layout’u) belirleyen özelliktir. Eğer burada Layout’u belirlersek tüm projeyi etkileyecektir. Şimdi _ViewStart.cshtml’in koduna göz atalım.
_ViewStart.cshtml
|
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
|
Home/Index.cshtml dosyamız üzerinde örneğimizi inceleyelim. Bu dosyadaki kodları şu şekilde düzenleyelim:
Index.cshtml
|
@{
ViewBag.Title = "Home Page";
}
|
Şimdi projemizi çalıştıralım ve ekranda nasıl bir görünüm alacağız inceleyelim.

Layout (MasterPage) olarak Views/Shared/_Layout.cshtml sayfasını aldık. Şimdi projenin genel Layout yapısını( yani _ViewStart.cshtml’i) değişitirmeden sadece Index.cshtml’in layout’unu değiştirelim. Bunun için öncelikle yeni bir Layout oluşturalım. Views/Shared/_Tema.cshtml isminde bir cshtml dosyası oluşturalım ve aşağıdaki gibi düzenleyelim.
Views/Shared/_Tema.cshtml
|
@{
ViewBag.Title = "Başlık";
}
<h2>_Tema</h2>
<table>
<tr style="background-color:Red">
<td> Veysel Ugur KIZMAZ<br /><br /></td>
</tr>
<tr style="background-color:Yellow">
<td>@RenderBody()</td>
</tr>
</table>
|
Burada dikkat etmemiz gereken en önemli nokta @RenderBody() methodudur. Bu method, ASPX View Engine’inde ContentPlaceHolder yerine geçmektedir.
Şimdi Index.cshtml’in Layout’unu _Tema.cshtml yapalım.
Index.cshtml
Şimdi projemizi çalıştıralım.

Home/Index linkine gittiğimizde tasarımın değiştiğini görebilmekteyiz.
Şimdi tüm projenin layout’unu _Tema.cshtml yapalım. Bunun için _ViewStart.cshtml dosyamızı şu şekilde değiştiriyoruz.
_ViewStart.cshtml
|
@{
Layout = "~/Views/Shared/_Tema.cshtml";
}
|
Projemizi çalıştırdığımızda hangi sayfaya gidersek gidelim Layout’u _Tema.cshtml olacaktır.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com