Veysel Uğur KIZMAZ

Asp.Net MVC Master Page Controller

15.01.2012Okunma Sayısı: 9041Kategori: ASP.NET MVC

 Bu makalemizde Asp.Net MVC 3 Razor View Engine’de User Control kullanarak MasterPage ile Controller sınıflarının nasıl buluşacağınız inceleyeceğiz.

Bu işlem için yeni bir Asp.NET MVC 3 (Empty) Web Application oluşturalım.
Oluşturduğumuz projeye HomeController isminde bir Controller ekleyelim.
Eklediğimiz Controllerın Index View’ını olşturalım. Oluştururken Layout seçimini yapalım.
 
Şimdi Views klasörünün altına UserControls klasörü oluşturalım ve “UC_Baslik.ascx” isminde bir Asp.NET MVC 3 View User Control control oluşturalım.
 
UC_Baslik.ascx isimli user controlümüze bir label ekleyelim ve bu label’ın text’ini Page_Load’da değiştirelim.
UC_Baslik.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script runat="server">
 
    protected void Page_Load(object sender, EventArgs e)
    {
        lbBaslik.Text = "Başlık";
    }
</script>
 
<p>
    <asp:Label ID="lbBaslik" runat="server" Text="Label"></asp:Label>
</p>
 
Son olarak _Layout.cshtml dosyamıza gidelim ve layoutta aşağıdaki düzenlemeleri yapalım.
<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
</head>
 
<body>
    <div style="background-color:Red; height:100px;">
       @Html.Partial("~/Views/UserControls/UC_Baslik.ascx")
    </div>
    <div style="background-color:Yellow; height:200px;" >
        @RenderBody()
    </div>
</body>
</html>
 
Html.Partial methodu ile parametrede gönderdiğimiz user controlü sayfamıza ekliyoruz.
Şimdi projemizi çalıştıralım ve kırmızı alanda “Başlık” yazısını görelim.
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com