Параметр Razor html helper показывает сообщение об использовании избыточного условного троичного выражения

Почему в Visual Studio появляется сообщение об избыточном использовании условных троичных выражений, когда имеется выражение мыши (также выражение "true: false" имеет меньшую непрозрачность). Это говорит мне о том, что я могу написать как-то меньше кода, чтобы получить то, что я хочу (если ViewBag.CMSClientStatus равен "Действующий", тогда проверьте радио)?

@Html.RadioButton("ClientStatus", "Real",  ViewBag.CMSClientStatus == "Действующий" ? true : false, new { @readonly = true })

Скриншот

3 ответа

Выражение ViewBag.CMSClientStatus == "Действующий" уже возвращается true или же false, Тернарный оператор ничего не добавляет к вашей логике, он избыточен, как предлагает Visual Studio.

Вместо:

ViewBag.CMSClientStatus == "Действующий" ? true : false

Просто используйте:

ViewBag.CMSClientStatus == "Действующий"

Оператор равенства (==) уже возвращается true или же false, так что нет необходимости в условном операторе.

Я написал так, как было предложено в предыдущих двух ответах. Но затем вышла ошибка: "Методы расширения не могут быть динамически отправлены".

Скриншот

Ответ был найден здесь. Мне нужно привести динамический тип к логическому типу. Моя последняя запись:

@Html.RadioButton("ClientStatus", "Потенциальный",  (bool) (ViewBag.CMSClientStatus == "Потенциальный"), new { @readonly = true })   
Другие вопросы по тегам