Я сейчас привык к бритве, но я не могу понять, почему правильный синтаксис правильный?
<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>
Как-то волшебно разбирается в цитировании, но я не могу найти ссылки на статьи о бритве, чтобы предположить, что это ожидается, поэтому мне интересно, полагается ли оно на нарушение поведения. Если я добавляю одиночные или двойные кавычки в строку вокруг слова "active", как вы ожидали бы, если выкрутите html, я получаю:
<li class="'active'">
<a href="/">Home</a>
</li>
или
<li class="active">
<a href="/">Home</a>
</li>
Почему это работает так, и мой код правильный (в отличие от простого функционирования)?