2008-12-02 16 views
11

Otrzymuję odpowiedź 404 od .Net MVC, gdy próbuję wykonać żądanie, w którym moje zapytanie kończy się na . (kropka). To jest droga, że ​​używam:ASP.NET MVC: sposób kierowania wyszukiwanego hasła za pomocą. (Okres) na końcu

routes.MapRoute(
       "Json", 
       "Remote.mvc/{action}/{searchTerm}/{count}", 
       new { controller="Remote", count=10} 
      ); 

Wyszukiwanie działa dobrze z . wewnątrz szukanej frazy, to po prostu nie może skończyć z nim. Wszelkie przemyślenia na temat kierowania tej prośby wyszukiwania?

+0

Podobny problem tutaj: http://stackoverflow.com/questions/294495/semantic-urls-with-dots-in-net#328873 –

Odpowiedz

5

Jeśli używasz .NET 4.0, można ustawić tę flagę w sekcji system.Web swojej web.config i będzie dozwolony:

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

Przetestowałem go i to działa. Haack ma wyjaśnienie tego.

+0

Działa świetnie, +1! – Justin

+1

Jak wspomniał Kosau, działa tylko wtedy, gdy kropka (.) Jest gdzieś w środkowej parze ukośników (np./Abc/de/f) i nie działa, gdy kropka wygląda jak separator typu pliku (np./Abc/de/fg). –

22

Mam rozwiązać podobny problem (miałem problemy ze ścieżkami jak/Muzyka/REM) Dodałem następujący wiersz do sekcji system.webServer/koparki (skorygowana o swoim przypadku):

<add name="UrlRoutingHandler" type="System.Web.Routing.UrlRoutingHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" path="Remote.mvc/*" verb="GET"/> 

ja również zauważyć, że

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

działa tylko wtedy, gdy kropki (.) jest gdzieś w środku parę ukośniki (np/abc/de/f) i nie działa, gdy wygląd z epoki jak separator typu pliku (np./abc/de/fg).

+0

Z wszystkich odpowiedzi, które znalazłem, twój był jedynym, który dokładnie odpowiedział na moją potrzebę. Dziękuję Ci. –

+0

Dziękuję bardzo! To była kombinacja odpowiedzi, których szukałem !!! –

+0

czy to musi być jedyny moduł obsługi? – quillbreaker