문제

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?

도움이 되었습니까?

해결책

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.

다른 팁

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top