asp.net web pages (не webforms) роутинг...
От: xpg934 Россия www.siisltd.ru
Дата: 06.12.13 15:46
Оценка:
Подскажите, как решить проблему.
Допустим есть сайт на Web Pages 3 (или 2, не принципиально) с Razor (оно же WebMatrix).
Штатная система роутинга в web pages вполне удобна, но, надо из url выцепить часть, а дальше чтобы всё работало как обычно.
Пример:
http://localhost/spb/a/b/c
http://localhost/msk/a/b/c

необходимо чтобы регион (spb, msk и т.д.) ушел в какую-нибудь доступную далее переменную (PageData или куда-то ещё), а далее вся обработка пошла штатным методом, будто перешли по ссылке:
http://localhost/a/b/c

пока из решений только использование RouteTable.Routes.MapPageRoute("default", "{region}/{*path}", "~/somepage.cshtml");
но оно не подходит, т.к. позволяет мапить на конкретную физическую страницу, а необходимо чтобы после выделения региона в переменную — обработка шла полноценно, как обычно.

ещё мысль найденная в гугле, в Application_BeginRequest() выцеплять этот регион и далее делать Contact.RewriteUrl(...), но не совсем понятно, как корректно там все прописать, чтобы не портить исходный урл и параметры, а также — где при этом сохранить выдранный регион...

В общем подскажите. Также это может быть полезно для указания локали, вроде http://localhost/ru/a/b/c
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.