2008-12-02 11 views
11

je reçois une réponse 404 de .Net MVC lorsque je tente de faire une demande où mon terme de recherche se termine par un . (période). C'est la voie que j'utilise:ASP.NET MVC: Comment Route Terme avec. (Période) à la fin

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

La recherche fonctionne très bien avec un . à l'intérieur du terme de recherche, il ne peut tout simplement pas finir avec elle. Des idées sur la façon d'acheminer cette demande de recherche?

+0

problème similaire ici: http://stackoverflow.com/questions/294495/semantic-urls-with-dots-in-net#328873 –

Répondre

5

Si vous utilisez .NET 4.0, vous pouvez définir ce drapeau dans la section system.web de votre web.config et il sera permis:

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

Je l'ai testé et il fonctionne. Haack a une explication de celui-ci.

+0

fonctionne très bien, +1! – Justin

+1

Comme mentionné par Kosau, il ne fonctionne que si la période (.) Est quelque part dans la paire milieu de barres obliques (par exemple/abc/de/f) et ne fonctionne pas lorsque la période ressemble à un séparateur de type de fichier (par exemple/abc/de/fg). –

22

J'ai résolu un problème similaire (j'ai eu des problèmes avec des chemins comme/musique/REM) J'ai ajouté la ligne suivante dans la section system.webServer/gestionnaires (ajusté pour votre cas):

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

Je l'ai noté aussi que

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

ne fonctionne que si la période (.) est quelque part dans la paire milieu de barres obliques (par exemple/abc/de/f) et ne fonctionne pas lorsque les regards de la période comme un séparateur de type de fichier (par exemple/abc/de/fg).

+0

De toutes les réponses que j'ai trouvé, le vôtre est le seul qui portait sur mes besoins exactement. Je vous remercie. –

+0

Merci beaucoup! C'était la combinaison de réponses que je cherchais !!! –

+0

-ce besoin d'être le seul gestionnaire? – quillbreaker

Questions connexes