嗨,我想在.ascx文件中使用if condition
。如下图所示:
<%= if (value.equals("xyz")) {} %>
如上所示,如果我这样使用。然后我收到“invalid expression if
”的错误。
请指导我。
答案 0 :(得分:16)
您应使用<%=
(不使用<%
符号)代替=
:
<% if (value.equals("xyz")) { } %>
如果要将表达式的结果直接输出到HTML,则使用 <%=
。
答案 1 :(得分:5)
这是因为表达式不会计算为可以包含在标记中的字符串,因此无法使用<%=
表示法。您可以使用条件运算符:
<%= condition ? "value if true" : "value if false" %>
或者您可以使用以下表示法插入代码块:
<% if (value.equals("xyz")) { } %>
请注意,然后您需要在花括号中Response.Write
所需的任何输出。这不是最佳实践 - 尽量避免使用标记中的逻辑。
答案 2 :(得分:0)
以上答案不能用于布尔属性,例如“Visible”。而是将此代码放在BindData()函数中。
if (condition) {
this.pnlMyPanel.Visible = true;
} else {
this.pnlMyPanel.Visible = false;
}
如果您不小心使用BindData(),请将其放在
下的Page_Load中if (!this.IsPostBack) {}
块。