ASP.NET Conditional Markup Rendering According to Web.config Key

Parag Meshram picture Parag Meshram · Jan 19, 2011 · Viewed 15k times · Source

I have a key in web.config as -

<add key="IsDemo" value ="true"/>

I want to show/hide markup based on above web.config entry for a non-server html tag without using code behind file (as there is no .cs file and there are no runat=server controls). Something similar to following pseudo code:

IF ( IsDemo == "true" )
THEN
<tr>
    <td id="tdDemoSection" colspan="2" align="left" valign="top">
        <.....>
    </td>
</tr>
ENDIF

Does anyone know that we can write such conditional logic in .aspx markup? Please help!!!

EDIT:

Section I'm hiding or showing have some data like username and password. So, I do not want user to use Firebug or Web Developer Tools to see hidden markup. markup should not go to client side.

Answer

Tomas McGuinness picture Tomas McGuinness · Jan 19, 2011

The syntax for something like that would be

<% if(System.Configuration.ConfigurationManager.AppSettings["IsDemo"] == "true") %>
<% { %>
<!-- Protected HTML goes here -->
<% } %>

This assumes that the page is in C#.

You can firm this code up by being more defensive around the AppSettings retrieval e.g. what happens in the case where the value is null etc.