Merhaba MVC Severler,
MVC’nin, ASP.NET MVC’nin ne olduğunu, hangi uygulamaları kullanmamız gerektiğini, Project Template’lerin neler olduğunu ve farklarını, View Engine’in ve Razor’un ne olduğunu ve proje içerisindeki öğelerin ne işe yaradıklarını öğrendik artık uygulama geliştirelim.
Giriş
Uygulama Türü: ASP.NET MVC 3
Proje Template Türü: Empty Template
View Engine: Razor
Yukarıdaki özelliklerde bir uygulama açıyoruz.
Uygulama
Uygulamamız açtığımız an karşımıza aşağıdaki resimde göründüğü gibi bazı öğeler geliyor:
Ne Yapacağım Peki Şimdi?
Uygulamamız bir çalıştıralım arkadaşlar:
Arkadaşlar biz uygulamamı çalıştırıyoruz fakat uygulamamızın neyi göstermesini bekliyoruz?
(son) Kullanıcının gördüğü dosyalar “View“‘lerdir arkadaşlar. Peki “View” nasıl oluşturabilirim? Arkadaşlar View oluşturmadan önce benim “Controller” oluşturmam gerekiyor. Hatırlayacak olursan her bir öğenin ne işe yaradığını anlatırken, View’ler Controller den oluşturulur ve çağırılır demiştik. Bir Controller olmadan View’inde kullanılması düşünülemez.
Uygulamamızda “Controllers” klasörüne sağ tıklayıp Add daha sonra da Controller diyoruz arkadaşlar.
Yeni Controller eklerken dikkat etmemiz gereken bazı noktalar var arkadaşlar. Karşımıza aşağıdaki gibi bir ekran görüntüsü çıkacaktır:
Arkadaşlar açtığımız zaman varsayılan olarak “Controller” dan önceki bölüm seçili olarak geliyor. Biz Contoller name’i verirken VereceğimizControllerismiController olarak vermemiz gerekiyor. Bu örneğimizde “HomeController” olarak verelim. Neden Home verdik az sonra geleceğiz arkadaşlar. Template şimdilik seçmeyelim sonraki yazılarımda bu konuda ayrıntılı olarak bilgi vereceğim.
HomeController’imizin içeriğine bakalım arkadaşlar:
Arkadaşlar öncelikli olarak class’imizin adının HomeController olduğunu ve Controller (abstract)classından implement edildiğini görebiliyoruz. Ayrıca içerisinde ActionResult tipinde Index adında bir metot olduğunu görüyoruz.
Controller’da ekledik. Çalıştırdığımızda aşağıdaki hatayı alırız:
Bu hatayıda almamız normal değil mi? Burada arkadaşlar Home altında Index.aspx, .ascx, cshtml, vbhtml sayfalarından birisini arıyor ve bulamıyor. Tamam Controller’i doğru şekilde oluşturduk. Kullanıcının etkileşime girdiği yani kullanıcının karşısına çıkacak olan sayfamız, View, henüz oluşturmadık.
HomeController’im içerisindeki Index adındaki ActionResult metotum içerisinde herhangi bir yer sağ tıklayıp “Add View” dedikten sonra aşağıdaki ekran karşımıza çıkacak:
View Name’ini Index olarak bırakıyoruz arkadaşlar, hatırlayacak olursanız yukarıda aldığımız hata Index adında bir sayfa bulamamasıydı. Ekliyoruz arkadaşlar ve Solution Explorer pencereme bakıp, projemdeki değişiklikleri gözlemliyorum.
Oluşan Index.cshtml sayfamızın içeriğine bakalım:
Layout diye bir seçenek var ve null olarak set edildiğini görüyoruz. Ayrıca HTML5 standartlarında olduğuda sanırım gözümüzden kaçmamıştır. Projemi ilk başta oluşturuken “Use HTML5 semantic markup” seçeneğini işaretlediğimizi unutmayalım.
Baktığımız zaman arkadaşlar, Views altında Controller’ımın adında Index adında bir .cshtml uzantılı bir sayfa oluştu.
Çalıştırdığımı zaman aşağıdaki görüntüyü alabileceğiz sonunda:
Adres çubuğuna Home/Index yazsaydık yine aynı sayfa görüntülenecek. Gözümüz aydın, sonunda sayfamıza kavuştuk. Bir kaç sayfa daha ekleyelim.
HomeController’ime geliyoruz ve birde About diye ActionResult tipinde bir metot oluşturuyoruz.
About adında View’imizide ekledik arkadaşlar. Çalıştırdığımız zaman göreceğiz ki Index sayfası geliyor. Peki biz nasıl About sayfası çalıştıracağız:
About sayfasını çağırmak için, Home/About yazdım. Peki Home ve About nereden geliyor?
- Home: Oluşturduğum Controller’im adı
- About: HomeController içerisindeki geriye View döndüren metotumun adı
Sonuç
Ben klasik ASP.NET kullanırken sayfaları çağırır ve öyle çalıştırırım, ASP.NET MVC de ise metotları çalıştırırımve onlarla ,istisna dışında, aynı isimde bağlı olan View’ler görüntülenir.
Bugün Ne Öğrendik
- Controller ekleme
- View ekleme
- Controller içerisinde metot yazma
- View(metot) çağırma
- Sayfaları değil metotları çağırdığımızı
Not: Uygulamalarınızı yaparken, Controller’a Home dışında ve Index olan metotun adını değiştirdiğinizde hata almanız normaldir. Sonraki yazımda bunun nedenini ve çözümü söyleyeceğim.
MVC ile kalın,














#1 by Mehmet Sindar on Aralık 21, 2011 - 2:04 pm
Anlatımlarınız için teşekkürler. devamını bekliyoruz
#2 by Mahmut Can Sözeri on Aralık 21, 2011 - 10:44 pm
İlginiz için teşekkürler. Yazılar ile devamı gelecek. Seminerler şeklinde de devam edecek anlatımlarım.
#3 by Abdurrahman Güngör on Şubat 26, 2012 - 12:54 pm
Çok iyi bir anlatım takip ediyorum teşekkürler