c# . net中的三元运算符和Eval -不能将字符串转换为bool
本文关键字:不能 Eval 字符串 bool 转换 运算符 net 三元 | 更新日期: 2023-09-27 18:05:11
我有一个项目,它的数据可能有也可能没有与之关联的文件。如果记录没有与之关联的文件,我就不想显示链接/标签。我原以为用三元操作符实现这将是相当简单的,但我收到以下内容:
: CS0030: Cannot convert type 'string' to 'bool'
由包含该语句
的行产生<asp:Label Visible='<%# Eval("supportingDocuments") == null ? "False" : "True" %>' id="supportingFileLink" runat="server" Text='Other' />
对我来说,这意味着它将Eval("supportingDocuments") == null
视为字符串,而不是可以计算为布尔值的条件。我试过在条件周围添加括号,但这并没有改变任何东西。
一定不喜欢"True"
和"False"
周围的双引号。
你可以试试:
Visible='<%# Eval("supportingDocuments") == null ? false : true %>'
或者更好的是,你可以简化为:
Visible='<%# Eval("supportingDocuments") != null %>'