2017-02-06 5 views
1

У меня есть приложение ASP.NET MVC со следующей строкой в ​​разметке:Котировки должны соответствовать, когда они это делают?

<i class=' fa fa-circle-thin fa-stack-2x'></i> 

Когда я строй этого приложения, я получаю следующее предупреждение:

Если это значение атрибута заключено в кавычки, котировки должны совпадать.

Понятно, что котировки do соответствуют. Предупреждение появляется, если я использую одиночные или двойные кавычки.

Для контекста, здесь окружающий код:

<span style="cursor: pointer;"> 
    <span class='fa-stack fa-lg @colorStyle' 
      data-toggle="tooltip" 
      data-placement="bottom" 
      title='@status'> 
     <i class=' fa fa-circle-thin fa-stack-2x'></i> 
     <i class="fa fa-database fa-stack-1x" 
      style="color: #ff4f4f;"></i> 
    </span> 
</span> 

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

Может ли кто-нибудь объяснить, почему это происходит, и как его исправить?

+2

Глупый вопрос, но я все равно спрошу: что произойдет, если вы удалите пробел в начале значения атрибута? – Amy

+0

@ Ами, не глупый вопрос вообще. Фактически, если я удалю его, ошибка исчезнет. Удивительно, мягко говоря. Ошибка в валидаторе HTML? Несмотря на то, что пространство не является необходимым, я думаю, что пространство не обязательно означает конец атрибута, тем более, что оно начинается с цитаты. –

+0

Ничего себе. Думаю, я отвечу на этот вопрос в ответ. Я ничего не вижу в спецификации HTML5, которая запрещает значение атрибута начинаться с пробела, поэтому я предполагаю, что это ошибка в валидаторе. – Amy

ответ

3

Удалите пространство с начала атрибута. Он действителен для спецификации HTML5, но валидатор VS прослушивается.