Стратегии работы с CSS в ASP.Net MVC UserControls - PullRequest
2 голосов
/ 06 декабря 2008

Я только начал играть с ASP.Net MVC Framework, и сегодня я создал простой UserControl, который использует немного CSS. Поскольку CSS был объявлен в отдельном файле и включен в представление, которое называется UserControl, а не в сам UserControl, Visual Studio не может найти ни один из классов CSS, используемых в UserControl. Это заставило меня задуматься о том, что будет наиболее подходящим способом работы с CSS в UserControls.

Объявление CSS в представлении, использующем UserControl, обеспечивает большую гибкость, если один и тот же элемент управления используется в разных контекстах и ​​должен иметь возможность адаптироваться к стилю вызывающего представления.

Наличие UserControl, предоставляющего собственный CSS, приведет к более четкому разделению, и представлениям не нужно будет ничего знать о HTML / CSS, генерируемом UserControl, но за счет фиксированного вида элемента управления. 1005 *

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

Итак, вы хотите, чтобы UserControl обрабатывал свой собственный CSS, должен ли он зависеть от CSS, объявленного в вызывающем представлении, или есть другое, лучшее решение?

Ответы [ 3 ]

1 голос
/ 06 декабря 2008

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

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

В качестве примера здесь - определения CSS для элемента управления TabView в Yahoo

1 голос
/ 06 декабря 2008

Это всегда должно быть в вашем глобальном CSS. Если вы передаете это дизайнеру, вам не нужно объяснять, какой элемент управления определяет стиль x и т. Д.

0 голосов
/ 06 декабря 2008

Небольшое замечание ... нормально, чтобы ваши Представления знали о HTML ... вот для чего они. Что я бы порекомендовал (если вы хотите быть крутым), это добавить параметр к вашему * MVC UserControl", который указывает имя класса. Пример:

<%= MyHelperClass.Marquee("This text will scroll!!!", "important-text") %>

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

Я предполагаю, что когда вы говорите "UserControl", вы имеете в виду пример, подобный приведенному выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...