ASP.Net MVC Yönlendirme Eşlemesi Anlama
ASP.Net’teki MVC (Model Görünüm Denetleyici) mimarisi dünyasında gezinmek, özellikle de yeni başlıyorsanız zorlayıcı olabilir. Geliştiricilerin karşılaştığı yaygın sorunlardan biri yönlendirmedir - özellikle özel yönlendirmeleri denetleyicilere eşlemek. Bu yazıda sıkça karşılaşılan bir problemi ele alacağız: *.aspx
dosyalarını bir PageController
‘a eşlemek.
Problem: *.aspx
‘ı PageController
ile Eşleme
MVC’ye yeni başladığınızı ve ASPX uzantılarını kullanarak sayfalar sunmak istediğinizi hayal edin. Aşağıdakine benzer bir yönlendirme oluşturmaya çalışabilirsiniz:
routes.MapRoute(
"Page",
"{name}.aspx",
new { controller = "Page", action = "Index", id = "" }
);
Ancak /Page.aspx
gibi bir URL girerek bu yönlendirmeyi test ettiğinizde, yolu için denetleyicinin bulunamadığını belirten bir hata mesajıyla karşılaşabilirsiniz:
‘/Page.aspx’ yolu için denetleyici bulunamadı veya IController arayüzünü uygulamıyor. Parametre adı: controllerType
Bu hata sinir bozucu olabilir ve kaçırdığınız bir şey olup olmadığını sorgulamanıza neden olabilir.
Çözüm: Yönlendirme Eşlemesinde Sıra Önemli
Sorununuzun çözümünün basit bir yönlendirme sırası olduğunu bilmek size rahatlık verebilir. ASP.Net MVC, yönlendirmeleri kaydedildikleri sıraya göre işler. Bu, eğer varsayılan yönlendirme, özel yönlendirmelerinizden önce tanımlandıysa, öncelik alacağı anlamına gelir.
Sorunu Giderme Adımları
-
Özel Yönlendirmenizi Taşıyın:
*.aspx
için özel yönlendirme eşlemenizin varsayılan yönlendirmeden önce tanımlandığından emin olun. Ayarlanmış kayıt aşağıdaki gibi görünmelidir:routes.MapRoute( "Page", "{name}.aspx", new { controller = "Page", action = "Index", id = "" } ); routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
Yönlendirme Nasıl Çalışır: Konvansiyon Üzerine Konfigürasyon
Yönlendirme mantığını daha da netleştirerek, MVC’nin Konvansiyon Üzerine Konfigürasyon olarak bilinen bir ilkeyi kullandığını belirtebiliriz. Bu, çerçevenin, açık bir yapılandırma yerine gelen isteğin nereye gitmesi gerektiğini tahmin etmeye çalıştığı anlamına gelir.
Ek Kaynaklar
ASP.Net MVC yönlendirmesini derinlemesine anlamak isteyenler için, ASP.Net’in ana yaratıcılarından biri olan Scott Guthrie, değerli bilgiler paylaşmıştır:
Her iki kaynak da MVC ve yönlendirme inceliklerini anlamanıza yardımcı olabilecek bol miktarda bilgi sunmaktadır.
Sonuç
Sonuç olarak, ASP.Net MVC’de *.aspx
sayfalarını PageController
ile başarılı bir şekilde eşlemek, yalnızca doğru kodu yazmaktan fazlasını gerektirir; yönlendirme kayıtlarının sırasını ve çerçevenin temel ilkelerini anlamayı da gerektirir. Özel yönlendirmelerinizin doğru bir şekilde önceliklendirildiğinden emin olarak, yönlendirme süreciyle ilişkili sinir bozucu hataları ortadan kaldırabilirsiniz.
Böylece, bir sonraki sefer MVC yönlendirmesinde kararsız kaldığınızda, sıralamanın önemli olduğunu hatırlayın ve bu yolculuğunuzu yönlendirecek iyi tanınmış kaynaklar arayın.