Sitemap

Asp.Net MVC Routing(Yönlendirme) Nedir?

3 min readFeb 15, 2019

--

Merhaba arkadaşlar, bu yazımda Mvc Routing yapısını anlatacağım.

Mvc Routing sayfa isteklerinde(request) Controller ile haberleşme için kullanılır. Routing gönderilen URL’in controllerda bulunan action ile eşleştirir ve arama motorlarını anlayabileceği bir url oluşturur. Proje içerisinde Global.asax dosyasına resimdeki şekilde eklenir.

Ancak yeni routinglerimizi projemizin içindeki App_Start klasörünün içindeki RouteConfig.cs içerisine yazılır. RouteConfig sınıfını ilk açtığımızda önceden tanımlanmış olan bir mapRoute ile karşılaşırız.

Örneğimize geçmeden önce mapRoute hakkında bir kaç bilgi vermek istiyorum. RegisterRoutes altında birden fazla MapRoutes tanımlanabilir. Ancak bu route yönlendirmeleri arasındaki sıralama önemlidir. Çünkü ilgili view client tarafından yollanan isteği buradaki routelar arasında en üstten başlayarak sırayla yapar.

MapRoute içinde;

⦁ name: Route’umuzun adını belirtir ve hiçbir route’un ismi aynı olamaz.

⦁ url: Yazılan controllerın altındaki actionın varsa parametreli({id} ile belirtilen kısım) bir url olması gerektiğini belirtiyor.

⦁ defaults: Üstteki resimden yola çıkarsak; Home controller altındaki Index action metotdunun çalışacağını belirtir.

⦁ id = UrlParameter.Optional: Sayfanın parametre olsa da olmasa da çalışabileceğini belirtir.

Get Hande Emren’s stories in your inbox

Join Medium for free to get updates from this writer.

Şimdi kendi route’umuzu yazalım.

Sitemiz içindeki resimleri listelememizi sağlamak için Home Controllerın içine ImgList action metodumuzu yazdık. Metodumuz id parametresine göre yazılmış olan sorguları çalıştırıp bize istediğimiz sayfayı döndürür. Ancak biz Url adresimizin yapısını değiştirmek istiyoruz diyelim. Bu iş için yeni bir MapRoute yazmamız gerekir.

Yazdığım yönlendirmeye göre Indexin Url’ine “/ImgList/2” gibi bir adres ekleyerek istediğimiz sayfanın görüntülenmesini sağlarız.

MapRoutelarımıza çeşitli kurallar(constraint) ekleyebiliriz. Örneğin id parametresinin sadece sayı olmasını sağlayacak bir kural ekleyebiliriz.

Gördüğünüz gibi yazdığım route’a bir constraint satırı ekleyerek url’e girilecek id’nin sayı olması zorunluluğunu sağladım.

Eskiden routelar anlattığım gibi tanımlanırdı. Ancak Mvc 5 ile birlikte yeni bir routing tanımlama sistemi getirildi. Routing Attribute dediğimiz bu sistem sayesinde route tanımlamak çok daha hızlı ve kolay bir şekilde yapılıyor.

Route eklemek istediğim action metodunun üzerine [Route(“”)] attribute ile istediğimiz routingi ve kuralları tek satırda yazarak işimizi çok daha kolay bir şekilde yapabiliyoruz.

Başka bir yazıda görüşmek üzere, hoşçakalın.

--

--