在ascx文件中使用if条件

10

你好,我想在.ascx文件中使用if条件语句,如下所示:

<%= if (value.equals("xyz")) {}  %>

如上所示,如果我使用那样的方式,就会出现“invalid expression if”的错误。
请指导我。
3个回答

17

你应该使用<%而不是<%=(去掉=):

<% if (value.equals("xyz")) { } %>

<%= 用于直接将表达式的结果输出到 HTML。


5
这是因为表达式的值不是字符串,不能被包含在标记中,所以不能使用<%=表示法。你可以使用条件运算符来实现:
<%= condition ? "value if true" : "value if false" %>

或者你可以使用以下表示法插入代码块:

<% if (value.equals("xyz")) { } %>

请注意,您需要在花括号内使用 Response.Write 来输出您想要的任何内容。这不是最佳实践 - 尽量避免在标记中使用逻辑。


0

以上答案不能用于布尔属性,例如“Visible”。相反,请将此代码放入BindData()函数中。

if (condition) {
    this.pnlMyPanel.Visible = true;
} else {
    this.pnlMyPanel.Visible = false;
}

如果你通常不使用BindData(),请将其放在Page_Load下面。
if (!this.IsPostBack) {}

块。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接