Pergunta

This question already has an answer here:

I'm playing around with Raven DB and MVC 2. By default, the id in Raven will be e.g. "suggestions/1234" for an entity called Suggestion.

This causes problems with routing when I write like this:

<%: Url.Action("Delete", "Suggestion", new { id = suggestion.Id }) %>

The url will be /Suggestion/Delete/suggestions/14337 which won't work.

Can this be solved in the routing, or do I have to change the format of the id in Raven? And how do I do that?

Foi útil?

Solução

Change your route from {controller}/{action}/{id} to {controller}/{action}/{*id}. This is called a "catch-all" route; more details on MSDN.

Alternatively, you could pass the id as a query parameter.

Outras dicas

You will not be able to encode the forward slash by default.

Change the id to suggestions_1234 or try to use this setting:

<uri> 
    <schemeSettings>
        <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
    </schemeSettings>
</uri>

I did not check if the config setting works yet. And I can't do it right now because the soccer starts in 5min.

URL-encoded slash in URL

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top