Переопределить строго типизированный @page masterpagefile
Я работаю со сторонним приложением asp.net, которое использует главные страницы и вложенные главные страницы. Мои потребности - динамически устанавливать файлы главной страницы для каждой страницы (.aspx). Приложение по умолчанию устанавливает файл главной страницы в строго типизированной директиве @Page для каждой страницы. Я не хочу менять строго типизированную директиву на каждой странице (более 50 страниц), потому что я ленив и хочу минимизировать конфликты с будущими обновлениями.
Моим решением было использовать базовый класс главной страницы и переопределить событие OnPreInt следующим образом:
protected override void OnPreInit(EventArgs e)
{
this.MasterPageFile = "~/MasterPages/MyMaster.master";
}
Все работает отлично. Мой вопрос: это плохая идея и почему? Это кажется слишком простым, чтобы быть правдой.
Благодарю.
3 ответа
Это очень хорошая идея. Половина главной страницы в том, что вы можете сделать это.
Одна неприятная вещь о них, это то, что вы не можете заставить их начать ссылаться на несуществующий файл (что сделает его более понятным, когда вы всегда будете принимать решение о мастере программно), так что если я собираюсь всегда устанавливать это что-то новое, мне нравится, чтобы оно начиналось со страницы, на которой просто написано "Макетная главная страница, это будет перемещено из программно", поэтому ясно, что это происходит с любым, кто отслеживает мастер-страницу, используемую страницей.
Это делает код / логику более сложным. У других ребят, которые могут продолжить работу над проектом, например, после вас, могут возникнуть проблемы с его быстрым пониманием. по моему мнению
Это должно работать без проблем. MasterPage не применяется к коллекции элементов управления до OnPreInit
, Единственные возможные проблемы, которые я вижу с этим, состоит в том, что
1) Ваши разработчики должны будут помнить, что это переключение происходит (технический долг)
2) Вам нужно будет загружать оба класса MasterPage каждый раз, когда запрашивается страница (проблема с производительностью)