Я добавляю некоторые легкие функции CMS в свои проекты веб-форм.
Я сохраняю мета страницы в базе данных и использую ее, вызывая ее через базовую страницу, которая наследуется страницей aspx.
Однако большинство - но не все страницы - имеют главную страницу. Некоторые функции базовой страницы используются для настройки навигации по сайту, которая обычно находится на главной странице (если только нет mp). Это означает, что мне нужен доступ к данным как на странице, так и на главной странице.
Итак, у меня есть несколько вариантов, которые я обдумал:
a) Передайте конкретные переменные главной странице со страницы aspx. Это означает, что каждая страница должна явно задавать свойство главной страницы, которое является повторением.
b) Я мог бы унаследовать базовую страницу от главной страницы, но тогда не у каждой страницы есть главная страница.
в) Я мог бы выделить функциональность главной страницы. По крайней мере, для этого потребуется два вызова базы данных, и он все равно не будет работать, если у страницы нет мастера.
d) Я мог бы попытаться абстрагировать код от базовой страницы и создать две базовые страницы - одну aspx, одну главную - с повторным использованием содержимого.
e) Я мог бы хранить данные базы данных в Context.Items, упрощая доступ к данным главной странице.
Много вариантов, ни один не идеален. Я задавался вопросом, есть ли лучшее решение там.