2010-06-19 2 views
0

Я играю с Raven DB и MVC 2. По умолчанию идентификатор в Raven будет, например. «предложения/1234» для объекта под названием «Предложение».Id с/вызывает проблемы с маршрутизацией

Это вызывает проблемы с маршрутизацией, когда я пишу так:

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

URL-адрес будет/Предложение/Удалить/предложения/14337, которые не будут работать.

Можно ли это решить в маршрутизации, или мне нужно изменить формат идентификатора в Raven? И как мне это сделать?

ответ

3

Изменить маршрут с {controller}/{action}/{id} до {controller}/{action}/{*id}. Это называется «пойманным» маршрутом; подробнее on MSDN.

В качестве альтернативы вы можете передать id в качестве параметра запроса.

+0

Хорошая идея, но работает только с последним параметром –

0

Вы не сможете кодировать косую черту по умолчанию.

Изменить идентификатор для suggestions_1234 или попытаться использовать этот параметр:

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

Я не проверял, если настройки конфигурации работает пока. И я не могу сделать это прямо сейчас, потому что футбол начинается через 5 минут.

URL-encoded slash in URL

Смежные вопросы