2011-01-19 14 views
9

tengo una llave en web.config -ASP.NET condicional de marcado de representación Según Web.config clave

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

Quiero ver/esconder marcado basado en la anterior entrada web.config para un no -server html tag sin usar el código detrás del archivo (ya que no hay archivo .cs y no hay controles runat = server). Algo similar al siguiente pseudocódigo:

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

¿Alguien sabe que podemos escribir como lógica condicional en el marcado .aspx? Por favor ayuda!

EDIT:

Sección estoy ocultando o mostrando algunos datos como el nombre de usuario y contraseña. Por lo tanto, no quiero que el usuario use Firebug o Web Developer Tools para ver marcado oculto. el marcado no debe ir al lado del cliente.

Respuesta

22

La sintaxis para algo así sería

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

Esto supone que la página está en C#.

Puede confirmar este código siendo más defensivo con la recuperación de AppSettings, p. lo que sucede en el caso de que el valor es nulo, etc.

+0

Gracias. Realicé algunos cambios en su código y agregué un fragmento debajo que funcionó para mí. –

2

Si lo entiendo bien, no desea usar el lado del servidor (componentes aspx, con el atributo runat = "server") y solo quiere controlar la visualización de html en la página aspx luego pruebe esta solución.

Crear una propiedad en el archivo de código subyacente (o mejor aún, de alguna otra clase de configuración ayudante):

//IN C# (OR VB) file 
protected string Demo{ 
    get{ 
      return ConfigurationManager.AppSettings["IsDemo"]=="true"? 
        "none":"block"; 
     } 
} 

En la página aspx:

<tr style="display:<%= Demo%>;"> 
    <td>blah blah</td> 
</tr> 
+0

Sección estoy ocultando o mostrando algunos datos como el nombre de usuario y contraseña. Por lo tanto, no quiero que el usuario use Firebug o Web Developer Tools para ver marcado oculto. el marcado no debe ir al lado del cliente. –

+1

¿Por qué diablos está poniendo nombres de usuario y contraseña en la página? – TheVillageIdiot

+0

Sí. Tu pregunta es valida :) Le hice la misma pregunta a mi cliente. Pero, en realidad, no es una contraseña, pero es un código de acceso que se comparte entre varios usuarios. –

5

Solución: -

<% If (ConfigurationManager.AppSettings("IsDemo").ToLower().Equals("true")) Then%> 
    <tr> 
     <.....> 
    </tr> 
<% Else%> 
    <tr> 
     <.....> 
    </tr> 
<% End If%> 
+0

La pregunta está etiquetada con C#, parece VB.NET. – Neolisk

Cuestiones relacionadas