gpt4 book ai didi

c# - 将 'in-line IF' (C#) 与 response.write 结合起来

转载 作者:太空狗 更新时间:2023-10-29 17:29:38 24 4
gpt4 key购买 nike

在传统的 C# 代码块中:

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

但是在我想有条件地响应.write 的 .aspx 中使用呢:

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

谢谢

最佳答案

理解不同标记在 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 ) %>

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

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

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

关于c# - 将 'in-line IF' (C#) 与 response.write 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1820671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com