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,


