In MVC 3 non ho avuto un problema, ma ora sono andato su MVC 4.Il routing di ASP.NET MVC 4 non funziona quando l'ID ha un'estensione di file
L'URL si presentava così:
{controller}/{action}/{id}
/podcast/file/PODCAST-01.MP4
Dove il podcast-01.MP4 è l'id; quando colpisce il controller, il controller invia il file al client, è stato fatto in questo modo in modo da poter facilmente contare quante persone hanno scaricato il file.
Tuttavia, ora, il server Web, pensa che ci dovrebbe essere un file lì e dà un errore 404. Ho cercato di aggirare questo facendo la mia pagina di errore 404 e poi reindirizzare indietro con /podcast/file?id=PODCAST-01.MP4 ma questo non funziona perché a iTunes non piace, non gli piace il "?".
Ho cercato di creare un una nuova rotta:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}.{format}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, format = UrlParameter.Optional });
Ma che sembra aver appena rotto il routing. Qualsiasi aiuto sarebbe grande.
Quando si dice si rompe l'instradamento, che cosa succede? Sembra corretto a colpo d'occhio. – Billdr
Ottengo questo errore quando vado a qualsiasi pagina: "Errore HTTP 403.14 - Proibito Il server Web è configurato per non elencare il contenuto di questa directory." quando cambio RouteConfig.cs –
Come su come aggiungere una sezione 'constraints' che definisce esplicitamente cosa dovrebbe avere un nome file (e non avere)? (C'è anche, storicamente, problemi con [parametri facoltativi consecutivi] (http://haacked.com/archive/2011/02/20/routing-regression-with-two-consecutive-optional-url-parameters.aspx)) –