结合“内联 IF” (C#) 带有response.write

发布于 2024-08-12 10:17:43 字数 321 浏览 10 评论 0原文

在传统的 C# 代码块中:

"myInt = (<condition> ? <true value> : <false value>)"

但是在 .aspx 中使用如何,我想有条件地响应.write:

<% ( Discount > 0 ?  Response.Write( "$" + Html.Encode(discountDto.Discount.FlatOff.ToString("#,###."): "")%>

mny thx

in a conventional C# code block:

"myInt = (<condition> ? <true value> : <false value>)"

but what about use inside an .aspx where I want to response.write conditionally:

<% ( Discount > 0 ?  Response.Write( "$" + Html.Encode(discountDto.Discount.FlatOff.ToString("#,###."): "")%>

mny thx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

無心 2024-08-19 10:17:43

值得了解不同标记标签在 ASP.NET 模板标记处理中的含义:

<% expression %>   - evaluates an expression in the underlying page language
<%= expression %>  - short-hand for Response.Write() - expression is converted to a string and emitted
<%# expression %>  - a databinding expression that allows markup to access the current value of a bound control

因此,要发出三元表达式(错误条件运算符)的值,您可以使用:

<%= (condition) ? if-true : if-false %>

或者您可以编写 L

<% Response.Write( (condition) ? if-true : if-false ) %>

如果您使用数据绑定控件(如转发器) ,例如),您可以使用数据绑定格式来评估并发出结果:

<asp:Repeater runat='server' otherattributes='...'>
     <ItemTemplate>
          <div class='<%# Container.DataItem( condition ? if-true : if-false ) %>'>  content </div>
     </ItemTemplate>
 </asp:Repeater>

<%# %> 的一个有趣的方面是标记扩展的特点是它可以在标签的属性内部使用,而其他两种形式(<% 和 <%=)只能在标签内容中使用(有一些特殊情况例外)。上面的例子证明了这一点。

It's worth understanding what the different markup tags mean within ASP.NET template markup processing:

<% expression %>   - evaluates an expression in the underlying page language
<%= expression %>  - short-hand for Response.Write() - expression is converted to a string and emitted
<%# expression %>  - a databinding expression that allows markup to access the current value of a bound control

So to emit the value of a ternary expression (err conditional operator) you can either use:

<%= (condition) ? if-true : if-false %>

or you can writeL

<% Response.Write( (condition) ? if-true : if-false ) %>

If you were using databound control (like a repeater, for example), you could use the databinding format to evaluate and emit the result:

<asp:Repeater runat='server' otherattributes='...'>
     <ItemTemplate>
          <div class='<%# Container.DataItem( condition ? if-true : if-false ) %>'>  content </div>
     </ItemTemplate>
 </asp:Repeater>

An interesting aspect of the <%# %> markup extension is that it can be used inside of attributes of a tag, whereas the other two forms (<% and <%=) can only be used in tag content (with a few special case exceptions). The example above demonstrates this.

归途 2024-08-19 10:17:43
<%=
    (Discount > 0)
        ? "$" + Html.Encode(discountDto.Discount.FlatOff.ToString("#,###."))
        : ""
%>
<%=
    (Discount > 0)
        ? "$" + Html.Encode(discountDto.Discount.FlatOff.ToString("#,###."))
        : ""
%>
只是偏爱你 2024-08-19 10:17:43

将 Response.Write 放在整个 ?:-操作中:

<% Response.Write( Discount > 0 ? "$" + Html.Encode(discountDto.Discount.FlatOff.ToString("#,###.") : "" ) %>

Put Response.Write around the whole ?:-operation:

<% Response.Write( Discount > 0 ? "$" + Html.Encode(discountDto.Discount.FlatOff.ToString("#,###.") : "" ) %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文