Избегать Класс или значение CssClass не определены. Предупреждения в частичных представлениях ASP.NET MVC ASCX (UserControls)

Мне было интересно, как я могу остановить эти раздражающие предупреждения компилятора «Значение класса или CssClass не определено», исходящие от моих частичных представлений ASP.NET MVC / пользовательских элементов управления ASCX. CSS определен правильно, но ссылка на файл CSS, очевидно, находится только на главной странице. Мои частичные представления содержат множество ссылок на классы CSS в div и т. Д., Поэтому я получаю огромное количество предупреждений, которых не должен видеть.

Как я могу это решить?

Спасибо !


person Alex    schedule 28.07.2009    source источник


Ответы (3)


Включите это в свое частичное представление:

<% if (false) { %>
   <link rel="stylesheet" type="text/css" ...
<% } %>

Это сделает intellisense счастливым и исключает таблицу стилей при рендеринге страницы, чтобы она не включалась дважды.

person Robert Harvey    schedule 28.07.2009
comment
Попробую это, спасибо. Это недостаток ASP.NET MVC, который, надеюсь, будет исправлен в следующей версии .... - person Alex; 28.07.2009
comment
Алекс, это не исправление, поскольку в HTML допустимо использовать классы не в таблице стилей. Решение Роберта исправляет ошибки в классах, которые находятся в CSS, но VS по-прежнему будет выдавать неверные предупреждения для тех, которых нет, даже в ASP.NET, отличном от MVC. Поэтому я не могу согласиться с тем, что это недостаток MVC. - person Craig Stuntz; 28.07.2009
comment
... не исправление ... - ›... не недостаток ... - person Craig Stuntz; 28.07.2009
comment
Вы правы, это скорее недостаток Visual Studio. Обвинил не того парня :) - person Alex; 28.07.2009

Один из способов - отключить проверку синтаксиса HTML (Инструменты-> Параметры-> Текстовый редактор-> HTML-> Показать ошибки-> В CSS).

Я использую плагин Firefox Tidy, который дает лучший совет, ИМХО.

person Craig Stuntz    schedule 28.07.2009

Это не недостаток ASP.Net MVC, и я не думаю, что он будет исправлен в следующей версии. Это «ограничение» (обратите внимание, как я избегаю слова «недостаток») в asp.net (а не только в mvc), которое не позволяет ему получить доступ к информации заголовка, включенной в главную страницу. Таким образом, у вас нет доступа к javascript / css на страницах содержимого / usercontrols.

Код, предоставленный Робертом Харви, представляет собой хакерское решение, которое мы использовали для решения этой проблемы.

Он работает за счет включения включаемого файла в блок if, который всегда является ложным. Таким образом, компилятор видит файл css, а среда выполнения - нет.

person Cyril Gupta    schedule 28.07.2009