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视为字符串,而不是可以计算为布尔值的条件。我试过在条件周围添加括号,但这并没有改变任何东西。

编辑:这是一个绑定GridView控件;

c# . net中的三元运算符和Eval -不能将字符串转换为bool

一定不喜欢"True""False"周围的双引号。

你可以试试:

Visible='<%#  Eval("supportingDocuments") == null ? false : true %>'

或者更好的是,你可以简化为:

Visible='<%#  Eval("supportingDocuments") != null %>'