C# 运算符“| |”不能应用于aspx页上“bool”和“string”类型的操作数

C# 运算符“| |”不能应用于aspx页上“bool”和“string”类型的操作数,c#,asp.net,C#,Asp.net,运算符“| |”不能应用于aspx页上“bool”和“string”类型的操作数有问题的部分如下: <div style="border: 1px solid #ddd; width: 100%; text-align: center; height: 130px"> <asp:ImageButton ID="imgDigitalDoc" Width="100%" Height="130px" ru

运算符“| |”不能应用于aspx页上“bool”和“string”类型的操作数

有问题的部分如下:

<div style="border: 1px solid #ddd; width: 100%; text-align: center; height: 130px">
    <asp:ImageButton 
        ID="imgDigitalDoc" 
        Width="100%" 
        Height="130px" 
        runat="server" 
        ImageUrl='<%# Convert.ToString(Eval("ImagePath"))=="jpgFormat.png" || "pdfFormat.png" ? "~/PocketData/Temp/" + Eval("PatID") + "/" + Convert.ToString(Eval("DocumentFileName")) : "~/assets/img/" + Convert.ToString(Eval("ImagePath")) %>' 
        ToolTip="View" 
        OnClick="imgDigitalDocOpen_Click" 
    />
</div>
这不是检查EvalImagePath是jpgFormat还是pdfFormat的方法。你需要像这样的东西

Eval("ImagePath"))=="jpgFormat.png" || "pdfFormat.png" 

你这里有错误

Eval("ImagePath"))=="jpgFormat.png" || Eval("ImagePath"))=="pdfFormat.png" 
代码Convert.toString ValimagePath==jpgFormat.png给出一个布尔值,您将其与字符串值pdfFormat.png进行比较

试一试


我的建议是将所有逻辑移到aspx页面上的公共方法中,然后调用该方法。这样你就可以依靠编译器提供指导,你可以给这个方法起一个有意义的名字,以帮助下一个开发人员了解这里应该发生什么。是的,我已经看了2分钟了,这是一个混乱和完美的例子,你需要重新开始,让你自己变得容易。。还有@Andrew saidWell,您不能隐式地将pdfFormat.png转换为布尔值。Convert.ToStringEvalImagePath==jpgFormat.png | | | pdfFormat.png不要求Convert.ToStringEvalImagePath等于jpgFormat.png或pdfFormat.png。错误在这里:检查条件运算符Convert.ToStringEvalImagePath==jpgFormat.png | | pdfFormat.png,它应该是:Convert.ToStringEvalImagePath==jpgFormat.png |Convert.toString ValimagePath==pdfFormat。png@Ritesh| |左边的部分首先计算为布尔值true/false,如果为false,则使用pdfFormat.png,这是不可能的,因为pdfFormat.png是字符串,而不是布尔值。当然,编译器可以在不运行应用程序的情况下确定此问题,从而生成消息。
 Convert.ToString(Eval("ImagePath"))=="jpgFormat.png" || "pdfFormat.png" ? ----
  (Convert.ToString(Eval("ImagePath"))=="jpgFormat.png" || Convert.ToString(Eval("ImagePath"))=="pdfFormat.png") ?  ------