2009-06-22 12 views
8

Rozważmy następującą trasę:Dlaczego środowisko ASP.NET MVC ignoruje moje końcowe ukośniki?

routes.MapRoute(
     "Service", // Route name 
     "service/", // URL with parameters 
     new {controller = "CustomerService", action = "Index"} // Parameter defaults 
     ); 

Korzystanie Url.Action("Service", "CustomerService") produkuje url /service zamiast oczekiwanego /service/

Czy istnieje jakiś sposób, aby uzyskać to do pracy, czy też muszę uciekać się do wdrażania moje własne routing pochodzący z RouteBase?

+3

mogę zapytać, dlaczego jest ważne? Jeśli chodzi o przeglądarki, to ich to nie obchodzi. A jeśli chodzi o budowanie własnych adresów URL tras opartych na tej trasie, trasa/zostanie dodana automagicznie w razie potrzeby. –

+0

Chcę, aby moje adresy URL były zgodne ze starszą wersją strony, która korzystała z adresów URL z końcowym ukośnikiem. Wiem, że teoretycznie to nie ma znaczenia, ale dla dziedzictwa to robi. :) – andreialecu

+1

Mimo to naprawdę nie ma powodu do niepokoju - nawet dla dziedzictwa. Jeśli końcowe ukośniki to wszystko, co różni się, nie ma różnicy. Wszystkie stare adresy URL będą ważne, a wszystkie nowe adresy URL będą działały w starych lokalizacjach. –

Odpowiedz

4

Legenden - nie ma natychmiastowego rozwiązania problemu. Być może natknąłeś się na numer Jason Young's blog post, który jest bardzo interesujący. Scott Hanselmann posted a reply to tutaj, mówiąc w zasadzie, że nie sądził, że to wielka sprawa, a jeśli tak, to możesz wykorzystać nowy moduł do przepisywania IIS7, aby go rozwiązać.

Ostatecznie jednak, warto spojrzeć na rozwiązania, które został napisany przez Murad na podobne pytanie na StackOverflow: Trailing slash on an ASP.NET MVC route

-5

W twoim przypadku obciążenia stronę Dodaj:

Dim rawUrl As String = HttpContext.Current.ApplicationInstance.Request.RawUrl 
If Not rawUrl.EndsWith("/") Then 
    HttpContext.Current.ApplicationInstance.Response.RedirectPermanent(String.Format("~{0}/", rawUrl)) 
End If 
+5

O to nie chodziło, a ponadto nie ma zdarzenia ładowania strony w mvc. – andreialecu

Powiązane problemy