Главные страницы - путь?

Я могу быть сумасшедшим, но главные страницы меня пугают, потому что я боюсь, что как только я буду заблокирован при использовании главной страницы, я столкнусь с ситуацией, когда я захочу унаследовать только 90% визуального содержимого главной страницы, заставив меня нарушить наследование и, таким образом, воспроизвести содержимое, которое было в мастере, и передать его ребенку.

Я чувствую, что это проблема с любым видом "наследования", в котором вы должны быть осторожны, но кажется, что вы, по крайней мере, можете переопределить методы в обычном классе.

Я, вероятно, не слишком последовательный здесь, но пользовательские элементы управления, кажется, дают вам больше гибкости. Единственным недостатком является то, что вы должны перетащить их на веб-форму. На это я говорю большое дело.

Преобразование моего приложения из пользовательских контроллеров в главные страницы пугает меня, и я боюсь, что мой Javascript сломается.

Комментарии?

5 ответов

Не бойся.

Вы можете создать столько заполнителей, сколько захотите, делая свою главную страницу очень детализированной. Эти заполнители также могут содержать контент и элементы управления по умолчанию.

Поэтому на 90% страниц, где вы хотите использовать разметку по умолчанию, вы можете опустить переопределяющий контент.

В качестве альтернативы в 10% случаев, когда вы хотите что-то другое, вы можете предоставить переопределяющую разметку

Пример:

<%@ Master Language="C#" %>
<html>
<body>
<asp:ContentPlaceholder id="Headline" runat="Server">
    My Default Headline
</asp:ContentPlaceholder>
<asp:ContentPlaceholder id="Main" runat="Server" />
</body>
</html>

на вашей домашней странице вы можете иметь такую ​​страницу:

<%@ Page MasterPageFile="..." %>
<asp:Content ContentPlaceHolderID="Headline" runat="Server">
    My homepage headline
</asp:Content>

<asp:Content contentplaceholderid="Main" runat="server">
    My homepage main content
</asp:Content>

на всех других ваших страницах используйте заголовок по умолчанию, опуская тег заголовка следующим образом:

<%@ Page MasterPageFile="..." %>
<asp:Content contentplaceholderid="Main" runat="server">
    My page main content
</asp:Content>

Я бы не стал не использовать мастер-страницы. Вы всегда можете вложить главные страницы, если хотите поделиться большинством Chrome на большинстве страниц, внутренним Chrome, чтобы поделиться в бункере и т. Д.

Как только вы привыкнете к ним, вы начнете использовать их по назначению. Та информация (ссылки на CSS, распространенные js, вопросы размещения страниц и т. Д.), Которой поделились достаточно страниц, чтобы гарантировать общий источник, пойдет туда, и позже вы будете рады, что они там есть.

Когда вы создаете страницу, которая отрывается от этого, вы можете немного подстроиться под своего главного мастера (абстрагируясь по-другому), но вы сможете быстро выполнить настройку и двигаться вперед.

Если это просто одноразовая страница, которая нарушает правила, тогда вы можете просто сказать этой странице наследовать другого мастера.

Сделайте тестовый сайт и поэкспериментируйте с концепцией, прежде чем вы начнете полагаться на нее.

Как вы упомянули, проблемы с наследованием могут возникать где угодно. Не переусердствуйте рано.

С проблемой описанных вами главных страниц вы можете менять / вставлять различные CSS-файлы и использовать селекторы для скрытия / изменения частей HTML-кода, созданного на главной странице.

Идея главной страницы хороша (если не тривиальна), но бесполезна, потому что их реализация.

  1. главная страница не вызывает страницу (содержание), а наоборот. Так в чем же проблема? Просто, вы не можете называть разные страницы, но одну страницу. Итак, вы кодируете и размещаете весь свой код на одной странице. Это нонсенс вообще. Главная страница допускает несколько блоков контента, но все они указывают на одну и ту же страницу (следовательно, загромождают код).

  2. Соединить код мастер-страницы и страницу вызывающего абонента нетривиально, например, они имеют один и тот же тег "form", но вы должны поместить тег form на свою страницу, и вы можете использовать тег form только один раз.:-?

  3. Переменные / Значения не передаются напрямую, вы можете, но это требует некоторого "взлома" (например, вызов функции внутри мастера)

  4. Вы должны обратить внимание в цикле загрузки (до загрузки страницы).

Мастер-страницы хороши, если ваша мастер-страница статична, в противном случае лучше просто "копировать и вставлять" на каждой странице или использовать пользовательские элементы управления, потому что мастер-страницы добавляют новый уровень сложности.

Помните, что цель мастер-страницы - сэкономить время, если она не справится с этой задачей, то она бесполезна.

мои 2 цента.

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