Параметр 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 })