【问题标题】:Ternary operator in aspx pageaspx 页面中的三元运算符
【发布时间】:2015-05-21 02:43:34
【问题描述】:

大家好,我想在 aspx 页面中使用三元运算符。我的 aspx.cs 文件中有两个公共变量,如下所示

public string currency = "INR";
public decimal amount = 100;

我想根据我的货币来构建html标签,目前我正在这样做

<% if (currency != "INR")
  {%>
     <span>$<%=amount%></span>
  <%}
  else
  { %>
    <span<%=amount%></span>
  <%} %>

我想做一行

&lt;span&gt;&lt;% if (currency != "INR") %&gt; $ amout &lt;% : %&gt; &lt;/span&gt;

但是我收到了Invalid expression term ':' 的错误,所以如果可能的话,有人可以帮助我

【问题讨论】:

    标签: c# asp.net ternary-operator


    【解决方案1】:

    三元运算符在没有 if 的情况下工作。它看起来如下:

    booleanExpression ? trueValue : falseValue
    

    但是你不能像对待 PHP 一样对待 ASP.NET,所以你必须把它放在一个 &lt;% %&gt; 包装器中

    <span><%= (currency != "INR" ? "$" : "") + amount %></span>
    

    【讨论】:

    • 执行时收到Invalid expression term ':'
    • @Dotnet 您在 之后又少了一个值。您需要再提供一个值才能使其发挥作用。
    • &lt;span&gt;&lt;% currency != "INR" ? %&gt; &lt;% amount : %&gt; $ &lt;% amount %&gt; &lt;/span&gt; 仍然没有得到
    【解决方案2】:

    从表达式中删除 if

    您需要在 :

    之后再提供一个值
    <span><%= (currency != "INR" ? "" : "Rs.") + amount %></span>
    

    【讨论】:

    • &lt;span&gt;&lt;% currency != "INR" ? %&gt; &lt;% amount : %&gt;$ &lt;% amount %&gt; &lt;/span&gt;
    • @Dotnet 请尝试这样
    • 出于某种原因,以这种方式使用三元组会导致整个 aspx 文件为其中引用的每个对象抛出编译错误,说它在当前上下文中不存在。
    【解决方案3】:

    bytecode77 的代码看起来很别扭。我建议:

    <span><%= (currency != "INR") ? amount : " " %></span>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 2021-08-01
      • 2018-09-10
      相关资源
      最近更新 更多