ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 5 – İlk Uygulamamız (Empty Template ile)


asp-net-MVC3

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:

Biz uygulamamı çalıştırıyoruz fakat uygulamamızın neyi göstermesini bekliyoruz? 

(son) Kullanıcının gördüğü dosyalar “View“‘lerdir. Peki “View” nasıl oluşturabilirim? 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.

Yeni Controller eklerken dikkat etmemiz gereken bazı noktalar var. Karşımıza aşağıdaki gibi bir ekran görüntüsü çıkacaktır:

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. Template şimdilik seçmeyelim sonraki yazılarımda bu konuda ayrıntılı olarak bilgi vereceğim.

HomeController’imizin içeriğine bakalım:

Ö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, 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, hatırlayacak olursanız yukarıda aldığımız hata Index adında bir sayfa bulamamasıydı. Ekliyoruz 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, 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. Ç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. #1 by Mehmet Sindar on December 21, 2011 - 2:04 pm

    Anlatımlarınız için teşekkürler. devamını bekliyoruz

    • #2 by Mahmut Can Sözeri on December 21, 2011 - 10:44 pm

      İlginiz için teşekkürler. Yazılar ile devamı gelecek. Seminerler şeklinde de devam edecek anlatımlarım.

  2. #3 by Abdurrahman Güngör on February 26, 2012 - 12:54 pm

    Çok iyi bir anlatım takip ediyorum teşekkürler

  3. #4 by Narin Akın on July 27, 2012 - 5:31 pm

    Başımda bir MVC projesi var gayet güzel bir yazı dizisi olmuş.Teşekkürler.

    • #5 by Mahmut Can Sözeri on July 27, 2012 - 11:11 pm

      Merhaba,

      Size faydalı olduysa ne mutlu bana.

      İyi çalışmalar

      Kolay gelsin

  4. #6 by mikail on August 22, 2012 - 1:48 am

    paylaşımlarınız için teşekkürler yalnız visual studio 2010 da mvc 3 ile proje oluşturacağım zaman use html 5 semantic markup seçeneği çıkmıyor acaba nasıl bu sorunu giderebilirim
    kolay gelsin

    • #7 by Mahmut Can Sözeri on August 22, 2012 - 11:15 pm

      Merhaba,

      Visual Studio 2010’u güncelleştirdiğinizde bu ayarın gelmesi gerekiyor.

      İyi çalışmalar

  5. #8 by Burhan on August 27, 2012 - 12:28 am

    hocam eksiksiz yaptıklarınızı uyguladım iis’te kurulu fakat hep aynı hatayı alıyorum:/

    Server Error in ‘/’ Application.
    ——————————————————————————–

    The resource cannot be found.
    Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

    Requested URL: /

    ——————————————————————————–
    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

    • #9 by Mahmut Can Sözeri on August 27, 2012 - 12:33 am

      Merhaba,

      Controller’in adını “HomeController” diye verdiğinize emin misiniz? Bana proje dosyasını yollar mısınız? mcs[at]mcansozeri[dot]com. Size bakıp dönerim.

      İyi çalışmalar

  6. #10 by ozdemiryazilim on October 13, 2012 - 9:48 pm

    Süper anlatım hocam sizin makaleleriniz ile MVC ye adım atıyoruz:)

  7. #12 by emreuyguce on May 6, 2014 - 1:32 pm

    HELAL OLSUN. SÜPER BİR ANLATIM SONUNDA ASP.NET MVCDEN ANLAMAYA BAŞLADIM ALLAH RAZI OLSUN.SÜPERSİNİZ HOCAM !

  1. ASP.NET MVC Archived Buzz, Page 1
  2. ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 7 – Html.Form ve Kontrollerin Kullanımı 1 « Mahmut Can Sözeri
  3. [Blog Post(Turkish)] ASP.NET MVC İle İlgili Tüm Yazılarım (29 Yazı, 1 Yazı Dizisi ve 1 İpucu Serisi) « Mahmut Can Sozeri
  4. [Blog Post] Visual Studio 2013 Preview ile ASP.NET MVC 5′e Giriş ve İlk Uygulama | Mahmut Can Sozeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s