在传统的C#代码块中:
"myInt = (<condition> ? <true value> : <false value>)"
但是如何在.aspx中使用我想要response.write有条件地使用:
<% ( Discount > 0 ? Response.Write( "$" + Html.Encode(discountDto.Discount.FlatOff.ToString("#,###."): "")%>
mny thx
解决方法
值得了解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
所以要发出一个三元表达式(err条件运算符)的值,你可以使用:
<%= (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>
<%#%>的一个有趣的方面标记扩展是它可以在标签的属性内部使用,而其他两种形式(<%和<%=)只能在标签内容中使用(有一些特殊情况例外).上面的例子说明了这一点.