Переопределить строго типизированный @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 каждый раз, когда запрашивается страница (проблема с производительностью)

Другие вопросы по тегам