Определенный синтаксис разметки, разбивающий разбор бритвы - PullRequest
0 голосов
/ 05 июня 2018

Следующий фрагмент ломает разбор бритвы, и intellisense и U понятия не имеют, почему он не работает (да, я нашел обходной путь, но он все еще меня не устраивает).

<select class="form-control" @(ViewBag.View ? "disabled" : string.Empty) asp-for="repetitiveness" asp-items="Html.GetEnumSelectList<TaskRepetitiveness>()">
    @if (ViewBag.View)
    {
        <option selected="selected" value="">@(EnumHelper<TaskRepetitiveness>.GetDisplayValue(Model.repetitiveness))</option>
    }
</select>

Theотключенный регистр оценивается нормально, но случай с пустой строкой, похоже, прослушивается (ниже приведен вывод после тестирования в браузере):

<select class="form-control" asp-for="repetitiveness" asp-items="Html.GetEnumSelectList<TaskRepetitiveness>()"></select>

А вот нарушение целостности в действии:

image image Ps Это все еще разрывается с фигурными скобками для помощника тега:

image

1 Ответ

0 голосов
/ 05 июня 2018

Бритва действительна только внутри тега, если заключена в кавычки и присвоена атрибуту HTML.Другими словами, должно работать что-то вроде следующего:

<select  class="form-control" disabled="@(ViewBag.View as bool? ?? false)" asp-for="repetitiveness" asp-items="Html.GetEnumSelectList<TaskRepetitiveness>()">

Может показаться, что это не сработает, потому что при указании disabled поле отключается, но Razor достаточно умен, чтобы удалитьатрибут, если он ложный.

...