C#.Net中的三元运算符和Eval-无法将字符串转换为bool

C#.Net中的三元运算符和Eval-无法将字符串转换为bool,c#,.net,C#,.net,我有一个项目,其中的数据可能与文件相关,也可能与文件无关。如果记录没有关联的文件,我不想显示链接/标签。我认为用三元运算符实现这一点相当简单,但我得到以下结果: : CS0030: Cannot convert type 'string' to 'bool' 由包含此语句的行生成 <asp:Label Visible='<%# Eval("supportingDocuments") == null ? "False" : "True" %>' id="supportingF

我有一个项目,其中的数据可能与文件相关,也可能与文件无关。如果记录没有关联的文件,我不想显示链接/标签。我认为用三元运算符实现这一点相当简单,但我得到以下结果:

: 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控件;很抱歉之前没有提到这一点。

它一定不喜欢
中“True”
中“False”
的双引号

你可以试试:

Visible='<%#  Eval("supportingDocuments") == null ? false : true %>'
Visible=''
或者更好的是,您可以简化为:

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

“False”和“True”是字符串,不是布尔值。我知道“True”和“False”在技术上是字符串,但每当在ASP.NET web控件中手动定义visible属性时,它的形式是visible=“False”,所以我很好奇为什么我的方法不起作用。谢谢我喜欢简单、优雅的解决方案。非常感谢!