Сравнение троичных строк в Razor view не работает - PullRequest
0 голосов
/ 24 апреля 2019

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

Вот что я пытаюсь сделать;

<select name="accountStatus" class="form-control w-100">
<option>Any</option>
<option value="ACTIVE" @(Model.AccountStatus == "ACTIVE" ? "selected" : "")>Active only</option>
<option value="INACTIVE" @(Model.AccountStatus == "INACTIVE" ? "selected" : "")>Inactive only</option>
</select>

Я подтвердил, что значением Model.AccountStatus является «ACTIVE», но для выбора по умолчанию установлено значение «Any».

Я вывел значение AccountStatus на страницу, чтобы подтвердить, что оно действительно правильно, используя.

Что я делаю не так?

1 Ответ

0 голосов
/ 25 апреля 2019

Верните null из вашей троицы вместо пустой строки.Если значение атрибута равно нулю, Razor удалит его автоматически, но, поскольку вы устанавливаете его для чего-либо, даже если это просто пустая строка, оно будет сохраняться.

Вы можете изменить свой код на:

<select name="accountStatus" class="form-control w-100">
<option>Any</option>
<option value="ACTIVE" selected="@((Model.AccountStatus =="ACTIVE") ? "selected" : null )">Active only</option>
<option value="INACTIVE" selected="@((Model.AccountStatus =="INACTIVE") ? "selected" : null )">Inactive only</option>
</select>
...