Повторение параметра в маршруте ASP.NET MVC - PullRequest
1 голос
/ 23 октября 2009

Я пытаюсь написать маршрут, который соответствует следующему формату URL:

/ category1 / category2 / S /

, где число категорий неизвестно, поэтому может быть 1 категория или может быть 10 (1..N).

Я не могу использовать перехват всех, потому что категории не находятся в конце URL.

Я на самом деле здесь перенаправляю на веб-форму (на примере Фила Хаака http://haacked.com/archive/2008/03/11/using-routing-with-webforms.aspx),, но это не относится к делу.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 26 октября 2009

Если честно, я нашел ответ здесь более полезным: Использование параметра жадного маршрута в середине определения маршрута

Сообщение в блоге, на которое ссылается вопрос, было чрезвычайно полезно: http://www.thecodejunkie.com/2008/11/supporting-complex-route-patterns-with.html

0 голосов
/ 15 марта 2011

Именно то, что вам нужно (ред.)

Это давно потерянный выстрел, но у меня, кажется, есть именно то, что вам нужно. Я написал класс GreedyRoute, который допускает жадный сегмент в любом месте URL (в начале, в середине или в конце - который уже поддерживается).

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

Главное, он поддерживает любой из этих шаблонов:

  • {segment}/{segment}/{*segment}
  • {segment}/{*segment}/{segment}
  • {*segment}/{segment}/{segment}

Он не поддерживает несколько жадных сегментов , хотя (что, конечно, также возможно, но имеет некоторые ограничения, которые следует соблюдать в этом сценарии), но я думаю, что это редкий пример, где это может б.

0 голосов
/ 23 октября 2009

Я думаю, что это невозможно, но вы можете попробовать обойти это, используя этот маршрут:

{категория} / S

Затем разделите категории, используя символ '/' самостоятельно.

Я создал сайт, на котором я только что установил его в 1-3 категориях, зарегистрировав 3 маршрута, но мне пришлось много работать над этим, и потом я не был очень доволен этим.

РЕДАКТИРОВАТЬ: Использование S / {* Categories} будет ловить категории. Вы можете использовать его только в конце URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...