webapi ASP.NET MVC: come instradare termini di ricerca con.(Periodo) alla fine




model view controller example (2)

Ottengo una risposta 404 da. Net MVC quando provo a fare una richiesta in cui il mio termine di ricerca termina con a . (periodo). Questa è la strada che sto usando:

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

La ricerca funziona bene con a . all'interno del termine di ricerca, non può finire con esso. Qualche idea su come indirizzare questa richiesta di ricerca?


Ho risolto un problema simile (ho avuto problemi con percorsi come / music / REM) Ho aggiunto la seguente riga nella sezione system.webServer / handlers (adattata per il tuo 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"/>

Ho notato anche questo

<httpRuntime relaxedUrlToFileSystemMapping="true" />

funziona solo se il punto (.) si trova da qualche parte nella coppia media di barre (ad es. / abc / de / f) e non funziona quando il punto appare come un separatore di file (ad esempio / abc / de / fg).


Se si utilizza .NET 4.0, è possibile impostare questo flag nella sezione system.web del proprio web.config e sarà consentito:

<httpRuntime relaxedUrlToFileSystemMapping="true" />

L'ho provato e funziona. Haack ne ha una spiegazione.





period