ASP.NET Routing - загружать маршруты из базы данных? - PullRequest
3 голосов
/ 12 марта 2010

Можно ли загружать маршруты из базы данных с ASP.NET?

For each r as SomeRouteObject in RouteDataTable
  routes.MapRoute( _
        r.Name, _
        r.RouteUri, _
        r.RouteValues, _  //??
        r.Constraints _   //??
    )
Next

Как хранить значения / ограничения маршрута? Я понимаю, что существует несколько значений маршрута по умолчанию , таких как .Controller и .Action, однако мне также нужны полностью настраиваемые значения как .Id или .Page ...

1 Ответ

2 голосов
/ 23 марта 2010

Подумай, прежде чем прыгать

Это возможно, но не осуществимо. Они предоставили статическую конфигурацию маршрута в Global.asax, потому что маршруты, как правило, являются статичными и остаются неизменными в течение длительного времени. Если этого не произойдет, у вас все равно будут проблемы с SEO. Поэтому я бы посоветовал вам сначала остановиться и подумать, действительно ли вам нужны настраиваемые маршруты.

Но это возможно

Но можно использовать DB в фоновом режиме для определения ваших маршрутов. В вашем случае вы можете хранить значения в виде сериализованных пар ключ / значение строки, поскольку RouteValuesDictionary может также принимать пары ключ-значение для подачи значений.

Если ваши определения маршрутов остаются неизменными с точки зрения значений по умолчанию / ограничений, но не URL-адресов, вы можете предоставить собственный интерфейс и классы, которые его реализуют. В этом случае вы можете просто сохранить URL-адреса и определения классов (аналогично тому, как они определены в web.config), которые определяют значения для определенного маршрута. Таким образом, будет очень просто использовать сложные конфигурации объектов, если они вам нужны ...

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