ID con / provoca problemi con il routing [duplicato
-
28-09-2019 - |
Domanda
Questa domanda ha già una risposta qui:
Sto giocando con Raven DB e MVC 2. Per impostazione predefinita, l'ID in Raven sarà ad esempio "Suggerimenti/1234" per un'entità chiamata suggerimento.
Questo provoca problemi con il routing quando scrivo in questo modo:
<%: Url.Action("Delete", "Suggestion", new { id = suggestion.Id }) %>
L'URL sarà/Suggerimento/Elimina/Suggerimenti/14337 che non funzionerà.
Questo può essere risolto nel routing o devo cambiare il formato dell'ID in Raven? E come lo faccio?
Soluzione
Cambia il tuo percorso da {controller}/{action}/{id}
a {controller}/{action}/{*id}
. Questo è chiamato un percorso "catch-all"; più dettagli su msdn.
In alternativa, potresti passare il id
come parametro di query.
Altri suggerimenti
Non sarai in grado di codificare la barra in avanti per impostazione predefinita.
Modifica l'ID in suggerimenti_1234 o prova a utilizzare questa impostazione:
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
</schemeSettings>
</uri>
Non ho ancora verificato se l'impostazione della configurazione funziona ancora. E non posso farlo adesso perché il calcio inizia in 5 minuti.