ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 6 – Global.asax Nedir? Ne İşe Yarar? Route Mantığını Kavrama


asp-net-MVC3

Merhaba MVC Severler,

Önceki yazımda ilk MVC uygulamamızı yazmıştık. Özellikle dikkatinizi çekmek istediğim nokta, biz ASP.NET’te sayfaları çağırıyoruz, ASP.NET MVC ‘de ise metotları çağırıyoruz. Controller içerisindeki metotlarda bize View döndürüyor ve bize bir sonuç dönmüş oluyor.

Biz Home adında bir Controller oluşturduk ve içerisinde geriye View döndüren Index adında bir metot tanımlamıştık. Peki neden bu şekilde yaptık? Başka isimde Controller ve/veya metot yazamazmıydık hata almamak için? Projemiz içerisinde “global.asax” adında bir dosyamız mevcut. Peki bu dosya içerisinde ne var? Hemen inceleyelim:

Static olarak tanımlanmış “RegisterRoutes” adındaki metotumuzu incelememiz gerekmektedir. Bu metot içerisinde MapRoute’larım mevcut.

Burada Default isminde Route tanımlanmıştır. Daha sonra çalışma şekli olarak;

domain/controller adi/action adi 

Örnek: mcansozeri.com/home/index

Bu tanımlanan Route içerisinde default olarak Controller=Home, Action = Index olarak verilmiştir. İlk çalıştığı an siz aksini yazmazsanız, Home/Index i arayacaktır. Bulamadığı içinde hata fırlatacaktır.

Kendimiz var olan Route üzerinde değişiklik yapabileceğimiz için kendimizde yeni MapRoute‘lar ekleyebiliriz.  Var olan MapRoute’ta aşağıdaki gibi değişiklik yaptığımız zaman, artık “Main” adında bir Controller ve içerisinde de First adında bir Action tanımlamış olmamız gerekmektedir.

routes.MapRoute(

“Default”,

“{controller}/{action}”,

new {controller=”Main”,action=”First”}

);

Örneğin WordPress’te olduğu gibi yani “mcansozeri.wordpress.com/page/1”  şeklinde yeni bir MapRoute tanımlayalım. Burada dikkat etmemiz gereken aslında şudur. Biz ekranda nasıl görünmesini istiyoruz? “page/id” şeklinde olmasını istiyorsak aşağıdakine benzer bir tanımlama yapmanız gerekmektedir:

routes.MapRoute(

“BlogPage”,

“{action}/{pageNumber}”,

new {controller=”Home”, action=”Post”, pageNumber=1}

);

Biz çok farklı şekillerde ve özelliklerde MapRoute tanımlayabiliriz. Hangi controllerda ve actionda çalışacağını belirledikten sonra pageNumber’i almamız yeterli olacaktır. Fakat yukarıdaki gibi bir kullanımda hata ile karşılaşma olasılığımız vardır.

Sonraki yazılarımda global.asax dosyası içerisinde daha ayrıntılı olarak değişiklikler yapacak ve bu dosyayı etkili şekilde kullacağız.

MVC ile kalın,

, , , ,

  1. ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 7 – Html.Form ve Kontrollerin Kullanımı 1 « Mahmut Can Sözeri
  2. [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
  3. [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