C # Выход из двойных кавычек с интерполяцией строк в Razor? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть следующий код бритвы с троичным оператором для включения или пропуска атрибута data- *:

 <select class="form-control"
        @(field.DependentDropdown ? $"data-selected={Model.KeyValues.GetValue(field.Name)}" : "")>

Когда он рендерится в HTML, он выглядит так:

<select class="form-control" 
        data-selected="Toyota" yaris="">

Как вы можете видеть, значение для атрибута data-selected неправильно отформатировано - это должно быть одно слово, заключенное в двойные кавычки "Toyota Yaris".

Как правильно экранировать или добавлять двойные кавычки в:

 $"data-selected={Model.KeyValues.GetValue(field.Name)}"

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Вам нужно использовать редко встречающийся <text> синтаксис

например.

<h1 @{if (true) { <text>data-selected="Hello world"</text> } }>Hello</h1>

попробуйте это:

 <select class="form-control"
        @{ if (field.DependentDropdown) { <text>data-selected="@Model.KeyValues.GetValue(field.Name)"</text> } }>

Мне трудно убедить его работать в троичном операторе - не стесняйтесь редактировать ответ, если вы правильно поняли синтаксис

0 голосов
/ 14 сентября 2018

Вы можете попробовать это.

Пример в Fiddle

 $"data-selected=\"{Model.KeyValues.GetValue(field.Name)}\""
...