con l'API Web predefinito percorsopercorso WebAPI 404, quando v'è uno spazio finale nell'URL
config.Routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new
{
id = RouteParameter.Optional
}
);
e un controller
public class TestController : ApiController
{
[HttpGet]
public HttpResponseMessage Get(string id)
{
return Request.CreateResponse(HttpStatusCode.OK, id);
}
}
Una richiesta di 'api/test/1'
rendimenti 1
Se per qualche motivo si invia una richiesta a 'api/test/1%20'
il percorso 404's.
Ora questo esempio può sembrare sciocco dal browser assetto spazi finali, ma
per un percorso come 'api/{controller}/{id}/{extrastuff}'
lo spazio in '1 '
sarebbe convertire '1%20'
e la richiesta sarà 404 sul percorso, non essere trovati.
sembra stupido che un motore di routing MVC sarebbe è impostato su false di default quando un enorme vantaggio di mvc è di non avere l'url correlato al file system. – Steve
Non è la decisione dei motori di routing, è ASP.NET al centro della protezione di tutto ciò che è stato costruito su di esso. Quindi, fai attenzione se cambi questo in questo modo stai rilassando le regole per ogni cosa sotto la tua applicazione. –
Arresto anomalo dell'applicazione appena lo aggiungo – Dan