2015-10-21 34 views
5

Sono in esecuzione MVC 5 e ho un'API di ricerca che produce il seguente collegamento: /SearchedItem.?format=json dove SearchedItem. è l'input dell'utente nella ricerca. Ciò ovviamente causa un famoso 404 a causa di un carattere dot. Ho esaminato tutte le seguenti soluzioni:Punto finale in MVC 5 WebRequest URL causa 404

Dot character '.' in MVC Web API 2 for request such as api/people/STAFF.45287

Dots in URL causes 404 with ASP.NET mvc and IIS

ApiController returns 404 when ID contains period

Tuttavia, né l'aggiunta di una barra (provato sia /SearchedItem./?format=json e /SearchedItem.?format=json/), né RAMMFAR lavorato.

Alla ricerca di nuovi suggerimenti.

risposta

1

Devi modificare il tuo web.config, il punto finale, pensiamo che stai accedendo a un'immagine.

Aggiungere il seguente all'interno del system.webServer/gestori (web.config)

<add name="ApiURIs-ISAPI-Integrated-4.0" 
path="/api/*" 
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" 
type="System.Web.Handlers.TransferRequestHandler" 
preCondition="integratedMode,runtimeVersionv4.0" /> 

Un altro suggeriscono potrebbe essere quella di impostare RunAllManagedModulesForAllRequests al vero, ma io non consiglierei questo. Tutte le risorse statiche sarebbero gestite tramite il codice .net quindi :)

Vedo nella domanda che hai controllato i collegamenti correlati. Ma sei sicuro? Perché ho mai incontrato in passato e, soprattutto, è stata la mia soluzione ...

+0

credo MVC 5 è il problema – eYe

+0

MVC 5 è un quadro in cima Asp.Net ... avete qualcosa di più? – NicoJuicy

+0

Le soluzioni elencate nelle mie domande non riescono in MVC 5, le persone confermano che nei commenti di risposta. – eYe

0

modo più adatto è quello di codificare una volta che si tratta di URL e decodifica nella rispettiva azione che si può utilizzare HttpUtility per eseguire la codifica e la decodifica

Se non si desidera codificare e decodificare quindi provare ad aggiungere relaxedUrlToFileSystemMapping config come spiegato Here