Я уже привык к бритве, но не могу понять, почему следующий синтаксис правильный?
<li @(active ? "class=active" : "")>
@Html.ActionLink(item.Text, item.TargetAction, Model.Controller)
</li>
Как вы можете видеть, я условно применяю класс (и я написал его таким образом, чтобы тег класса не генерировался, если bool active == false).
Что я не могу понять, так это то, почему тогда генерируются правильные кавычки:
<li class="active"><a href="/">Home</a></li>
<a href="/">Home</a>
</li>
Каким-то образом это волшебным образом сортирует цитаты, но я не могу найти никаких ссылок в статьях о бритве, чтобы предположить, что это ожидается, поэтому мне интересно, не полагается ли это на неправильное поведение. Если я добавлю одинарные или двойные кавычки в строку вокруг слова «активный», как и следовало ожидать при запуске html, я получу:
<li class="'active'">
<a href="/">Home</a>
</li>
или
<li class="active">
<a href="/">Home</a>
</li>
Почему это работает так, и мой код правильный (в отличие от простого функционирования)?