Мой вопрос касается маршрутизации страниц на веб-сайте веб-форм ASP.net (VB).
Мне нужно перейти на 2 страницы .aspx несколькими способами, например.
routes.MapPageRoute("SEO", "{Title}/{Id}", "~/PageA.aspx")
routes.MapPageRoute("Catalogue", "Issue{IssueNumber}-{PageNumber}", "~/PageA.aspx")
но мне нужно реализовать некоторую логику, включающую запросы к базе данных (LINQ to SQL) на обоих маршрутах, например.
Маршрут 1) Проверить битовое поле, если false, то физический файл = PageA.aspx, true то PageB.aspx
Маршрут 2) Поиск IssueNumber и PageNumber, получение PageId и добавление в RouteData, установка физического файла = PageA.aspx
Я думаю, что лучший способ сделать это - реализовать класс IRouteHandler, но я не смог определить:
- Куда писать запросы к базе данных в таком классе
- Как установить физический файл в классе
- Где / как добавить новое значение в данные маршрута, например, PageId
- Где проверить, что поля Id и Number на самом деле являются целыми числами (ограничения?)
Я не могу найти полезной документации VB.net, есть предложения?
Если нет, мне придется прибегнуть к промежуточной странице .aspx, то есть Transfer.aspx, а затем выполнить запросы к базе данных, а затем сохранить возвращаемые значения в переменных сеанса, а затем выполнить Server.Transfer(PageA.aspx)
, но это похоже на старомодный и неэлегантный способ сделать это. Пожалуйста помоги!