Bu makalemizde Visual Studio 2010 ile MVC projesi oluşturmayı ve Asp.Net MVC 3’ün nasıl çalıştığını adım adım izleyelim.
Asp.Net MVC ile ilgili temel bilgiler için bu makaleyi inceleyebilirsiniz.
Öncelikle File->New Project ile yeni bir Asp.Net MVC 3 projesi oluşturuyoruz. Asp.Net MVC 3 kurulu değil ise bu linkten indirebilirsiniz.
Asp.Net MVC Internet Application Projemizi oluşturduk. Şimdi Solution Explorer’dan MVC projesi oluşturduğumuzda hangi dosyaların klasörlerin geldiğini ve bunların ne işe yaradığını incleyelim.
- Content : Tasarımsal dosyaların bulunduğu klasördür. Themes, images vb tasarımsal dosyaları bu klasöre yerleştiriyoruz.
- Controllers : Controller sınıflarının bulunduğu klasördür.
- Models : Model sınıflarımızın bulunduğu klasördür.
- Scripts : Javascript dosyalarımızın bulunduğu klasördür.
- Views : Ekranlarımızın bulunduğu klasördür.
- Global.asax : Uygulamanın methodlarının yakalanmasını sağlayan dosyamızdır.
Asp.Net MVC projemizin çalışma mantığı şu şekildedir :
- Proje çalıştırıldığında ilk önce Global.asax dosyamız çalışır ve yapılması gereken işlemler varsa onları gerçekleştirir ve yönlendirmeyi gerçekleştirir. Yönlendirme kodu başlangıçta aşağıdaki şekildedir.
- public static void RegisterRoutes(RouteCollection routes)
- {
- routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
- routes.MapRoute(
- "Default", // Route name
- "{controller}/{action}/{id}", // URL with parameters
- new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
- );
- }
Projemizi çalıştırdığımızda Home/Index sayfamız açılacaktır. Action’ı About ile değiştirdiğimzde Home/About sayfamız açılacaktır.
- Global.asx’tan sonra hangi controller’a yönlendirme varsa o Controller’a yönlenmektedir. HomeController.cs’de Index() methoduna breakpoint yerleştirip inceleyelim.
Projemizi çalıştırdık. Global asax’tan HomeController’daki Index() methoduna yönlendirme yaptı. HomeController.cs’deki Index() methodumuza geldik ve burada return View() methodu ile karşılaştırdık. Bu method, Home klasörünün altındaki Index.aspx’i çalıştırmaktadır.
Burada dikkat etmemiz gereken önemli bir nokta, Index() methodunun geri döndürdüğü ActionResult türüdür. ActionResult, bu methodun bir Action döndürdüğünü belirtmektedir. ActionResult çeşitlerini sonraki makalelerimizde detaylı bir şekilde ele alacağız.
- Index.aspx dosyamızın içeriğini inceleyelim.
- <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
- Home Page
- </asp:Content>
- <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
- <h2><%: ViewBag.Message %></h2>
- <p>
- To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
- </p>
- </asp:Content>
Asp dosyalarımızı satır satır inceleyelim.
- <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
Bu satırda sayfamızın temel bilgilerini (MasterPage, language..) belirliyoruz.
- <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
- Home Page
- </asp:Content>
Bu satırda, masterpage’de belirlediğimiz TitleContent’in içeriği doldurulmaktadır.
- <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
- </asp:Content>
Bu taglar arasında Masterpage’de belirlediğimiz MainContent’in içeriği doldurulmaktadır.
Bu örnekte en dikkat etmemiz gereken nokta şurasıdır:
- <%: ViewBag.Message %>
HomeController.cs içindeki Index() methodunda ViewBag.Message propertysine “YazılımDevi.Com!” değerini atamıştık. Burada ise bu değeri okuma işlemini gerçekleştiriyoruz.
Şimdi projemizi çalıştırıp inceleyelim.
İlk Asp.Net MVC uygulamamızı bu şekilde çalıştırdık. İlerleyen makalelerimizde Asp.Net MVC projelerinin detaylarını inceleyeceğiz.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi