Razor html helper参数显示关于冗余条件三元表达式用法的消息

本文关键字:条件 表达式 消息 用法 三元 冗余 参数 helper html 显示 于冗余 | 更新日期: 2023-09-27 18:00:36

当存在鼠标悬停表达式(表达式"true:false"也具有较低的不透明度)时,为什么会出现有关冗余条件三元表达式使用的Visual Studio消息。它是否告诉我,我可以以某种方式写更少的代码来获得我想要的东西(如果ViewBag.CMSClientStatus等于"Дейсрвужий",那么检查收音机)?

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

屏幕截图

Razor html helper参数显示关于冗余条件三元表达式用法的消息

表达式ViewBag.CMSClientStatus == "Действующий"已返回truefalse。三元运算符不会为您的逻辑添加任何内容,正如Visual Studio所建议的那样,它是多余的。

代替:

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

只需使用:

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

相等运算符(==)已经返回truefalse,因此不需要条件运算符。

我已经按照前两个答案中的建议进行了编写。但随后出现了一个错误:"扩展方法不能动态调度"。

屏幕截图

答案在这里找到。我需要将动态类型强制转换为布尔类型。我的最后一个条目是:

@Html.RadioButton("ClientStatus", "Потенциальный",  (bool) (ViewBag.CMSClientStatus == "Потенциальный"), new { @readonly = true })