2014-09-24 16 views
14

Varolan bir denetleyici ile eşleşmeyen tüm URL'leri belirli bir denetleyiciye yeniden yönlendirmeye çalışıyorum.Bir denetleyici veya eylem adı olmadan Asp.net mvc yönlendirme

Örneğin, url mywebsite.com/newyork mywebsite.com/Cities/Info/newyork

benim RegisterRoutes aşağıdaki kodu kullanıyorum

olarak işlenmelidir ama ben gibi çalışmaya görünmüyor 404 tepkisini daha olsun:

 routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
     routes.MapRoute(
      name: "Cities", 
      url: "{cityname}", 
      defaults: new { controller = "Cities", action = "Info", cityname= "" } 
     ); 

cevap

18

öncelikle şehirler rotayı koymak ve boş varsayılan parametre damla olmalıdır: Eğer olması gereken bu yüzden

routes.MapRoute(
     name: "Cities", 
     url: "{cityname}", 
     defaults: new { controller = "Cities", action = "Info" } 
    ); 
    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

yolları sırayla işlenir en spesifik ilk en az belirli (varsayılan rotanız).

Web sitenizin.com/newyork varsayılan yolla eşleştiği için şehir rotanıza devam etmiyordu.

İlgili konular