2012-05-25 21 views
7

Yığınlar için arama yaptım, MSDN belgelerini okudum ve Bing'i kullandım ama neden bu işe yaramayacağını göremiyorum! Yönergelerin altındaki + ilgili kodu aldım. Browse adlı yol gayet iyi çalışır, ancak Details rotası için productCode param her zaman hiçbir şeye eşit değildir. Eğer herhangi bir mod çıkarsam, 'kaynak bulunamadı' 404 sayfasını almaya devam ediyorum.ASP.NET MVC4 yönlendirme sorunu

' Lives in controller called 'Details' 
' Usage: site.com/details/abc123 
Function Index(productCode As String) As ActionResult 

' Lives in controller called 'Browse'  
' Usage: site.com/browse/scifi/2 
Function Index(genre As String, Optional page As Integer = 1) As ActionResult 

yolları şunlardır: rotalarınızı tanımlarken

routes.MapRoute(_ 
     "Browse", _ 
     "{controller}/{genre}/{page}", _ 
     New With {.controller = "Browse", .action = "Index", .id = UrlParameter.Optional, .page = UrlParameter.Optional} 
    ) 

    routes.MapRoute(_ 
     "Details", _ 
     "details/{productCode}", _ 
     New With {.controller = "Details", .action = "Info", .productCode = UrlParameter.Optional} 
    ) 

cevap

7

düzen önemli.

site.com/details/abc123'u istendiğinde, ilk rotanızla eşleştiğini düşünüyorum.

Sen ProductCode null yüzden

controller = "details"

action = "Index"

genre = "abc123"

alacak.

İki route.MapRoute ifadesini çevirin, sorununuzu çözmelidir.

İkinci rotanız, index yerine info olarak ayarlandı, ancak bir yazım hatası olduğunu farz ediyorum?