route net mvc examples asp .net asp.net-mvc model-view-controller routing period

examples - ASP.NET MVC: cómo enrutar el término de búsqueda con.(Período) al final



route controller c# (2)

Recibo una respuesta 404 de .Net MVC cuando intento hacer una solicitud donde mi término de búsqueda termina con a . (período). Esta es la ruta que estoy usando:

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

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


Si usa .NET 4.0, puede establecer este indicador en la sección system.web de su web.config y se le permitirá:

<httpRuntime relaxedUrlToFileSystemMapping="true" />

Lo probé y funciona. Haack tiene una explicación de eso.


He resuelto un problema similar (tuve problemas con rutas como / music / REM) Agregué la siguiente línea en la sección system.webServer / handlers (ajustada 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"/>

También he notado que

<httpRuntime relaxedUrlToFileSystemMapping="true" />

funciona solo si el punto (.) 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).