Регистрация маршрутов при запуске сеанса, а не при запуске приложения. - PullRequest
0 голосов
/ 27 января 2011

Я пытаюсь зарегистрировать коллекцию маршрутов в .net на основе каждого сеанса. У меня хорошо работает код, вы переходите на сайт / имя пользователя и загружаете правильные подстраницы, но вам нужно перезапустить приложение, чтобы перейти на сайт / имя пользователя2, чтобы загрузить эти подстраницы. Но когда приложение перезапускается, второе работает, а затем не первое.

Существует ли какой-либо способ создать другую коллекцию маршрутов для сеанса, а не для приложения, используя system.web.routing.

Ответы [ 3 ]

3 голосов
/ 27 января 2011

Маршруты связаны с именами маршрутов и хранятся глобально для веб-приложения, поэтому вы не можете определить маршруты для каждого сеанса.Можете ли вы привести пример того, почему вам нужны разные маршруты для разных пользователей?Скорее всего, это можно решить, просто используя шаблоны маршрутов, например, установив RouteUrl что-то вроде: «member / logo / {size} / {UserName} .jpg», где вы можете указать UserName и размер при генерации URL маршрута через Page.GetRouteUrl ()

1 голос
/ 27 января 2011

Вы можете создать свой собственный обработчик маршрута.Взгляните на: ASP.Net MVC Framework - создайте свой собственный IRouteHandler .

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

0 голосов
/ 27 января 2011

RouteTable.Routes является статическим, поэтому одни и те же маршруты используются всеми сеансамиТаким образом, вы не можете иметь разные наборы маршрутов для каждой сессии.

...