2008-12-02 13 views
11

Recibo una respuesta 404 de .Net MVC cuando intento hacer una solicitud donde mi término de búsqueda finaliza con un . (punto). Esta es la ruta que estoy usando:ASP.NET MVC: cómo enrutar el término de búsqueda con. (Período) al final

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

La búsqueda funciona bien con un . dentro del término de búsqueda, simplemente no puede terminar con ella. ¿Alguna idea sobre cómo enrutar esta solicitud de búsqueda?

+0

Problema similar aquí: http://stackoverflow.com/questions/294495/semantic-urls-with-dots-in-net#328873 –

Respuesta

5

Si está utilizando .NET 4.0, se puede establecer esta bandera en la sección system.web de su web.config y se le permitirá:

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

Lo he probado y funciona. Haack tiene una explicación de eso.

+0

¡Funciona muy bien, +1! – Justin

+1

Según lo mencionado por Kosau, solo funciona si el período (.) Se encuentra en algún lugar en el medio par de barras diagonales (ej./Abc/de/f) y no funciona cuando el período se parece a un separador de tipo de archivo (ej./Abc/de/fg). –

22

he resuelto un problema similar (que tenía problemas con las rutas como/música/REM) que he añadido la línea siguiente en la sección system.webServer/manipuladores (ajustado para su caso):

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

he observado también que

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

Cómo funciona sólo si el punto (.) está en algún lugar en el medio par de barras (por ejemplo,/abc/de/f) y no funciona cuando las miradas de época como un separador de tipo de archivo (por ejemplo,/abc/de/fg).

+0

De todas las respuestas que encontré, la tuya fue la única que abordó mi necesidad exactamente. Gracias. –

+0

¡Muchas gracias! ¡Esta fue la combinación de respuestas que estaba buscando! –

+0

¿necesita esto ser el único controlador? – quillbreaker

Cuestiones relacionadas