Мой вопрос касается маршрутизации страниц на веб-формах 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)
, но это похоже старомодный и не элегантный способ сделать это. Пожалуйста помоги!