我在web.config中有一个键 -
<add key="IsDemo" value ="true"/>
我想基于以上web.config条目显示/隐藏标记非服务器html标记而不使用代码隐藏文件(因为没有.cs文件且没有runat =服务器控件)。 类似于以下伪代码的东西:
IF ( IsDemo == "true" )
THEN
<tr>
<td id="tdDemoSection" colspan="2" align="left" valign="top">
<.....>
</td>
</tr>
ENDIF
有谁知道我们可以在.aspx标记中编写这样的条件逻辑吗? 请帮忙!!!
修改
我隐藏或显示的部分有一些数据,如用户名和密码。所以,我不希望用户使用Firebug或Web Developer Tools来查看隐藏的标记。标记不应该转到客户端。
答案 0 :(得分:23)
类似的东西的语法是
<% if(System.Configuration.ConfigurationManager.AppSettings["IsDemo"] == "true") %>
<% { %>
<!-- Protected HTML goes here -->
<% } %>
这假设页面在C#中。
您可以通过更加防御AppSettings检索来确定此代码,例如在值为null等情况下会发生什么。
答案 1 :(得分:5)
<强>解决方案: - 强>
<% If (ConfigurationManager.AppSettings("IsDemo").ToLower().Equals("true")) Then%>
<tr>
<.....>
</tr>
<% Else%>
<tr>
<.....>
</tr>
<% End If%>
答案 2 :(得分:2)
如果我理解正确,你不想使用服务器端(aspx组件,具有runat =“server”属性)并且只想控制aspx页面上的html显示然后尝试这个解决方案。
在codebehind文件中创建一个属性(或者更好的是在其他一些配置助手类中):
//IN C# (OR VB) file
protected string Demo{
get{
return ConfigurationManager.AppSettings["IsDemo"]=="true"?
"none":"block";
}
}
在aspx页面中:
<tr style="display:<%= Demo%>;">
<td>blah blah</td>
</tr>