2010-05-28 10 views
13

Quiero mostrar un mensaje en mi página de inicio (default.aspx), que es diferente para cada "instalación" de mi aplicación web. Me gustaría evitar hacer una llamada a la base de datos para mostrar este mensaje .. así que pensado en utilizar web.config para almacenar algo como estoUsar marcado HTML en el archivo web.config

<add key="WelcomeString" value="lorem ipsus <b>doloret sit amen</b>" /> 

Pero me he dado cuenta de que no puedo usar el formato HTML en the web.config ... ¿Hay un mejor enfoque, o hay alguna forma de insertar el marcado html en web.config? Gracias otra vez stack guru overflow ... estoy aprendiendo de ti un montón de cosas!

+0

¿Ha intentado utilizar el método 'Server.HTMLEncode' y luego aplicando el método' Server.HTMLDecode' a la cadena que lee del archivo? Sin embargo, no estoy seguro de que funcione en un documento XML. –

Respuesta

15

Necesita codificar XML, almacenarlo en el XML como un valor de atributo válido. por ejemplo:

<add key="WelcomeString" value="lorem ipsus &lt;b&gt;doloret sit amen&lt;/b&gt;" /> 
+0

¿El método Server.HTMLEncode logra lo mismo que un XMLEncode, o hay diferencias? –

+0

@Rising Star Son muy similares, pero sutilmente diferentes. De cualquier manera, app.config es un archivo XML, por lo que debe estar codificado en XML (así que no intente utilizar entidades HTML como '©' o ' ') –

11

Use "& lt;" y "& gt;" en lugar de "<" y ">":

<add key="WelcomeString" value="lorem ipsus &lt;b&gt;doloret sit amen&lt;/b&gt;" /> 
+1

wow guys, stackoverflow es "LA" Biblia para un programador ! ;) ¡gracias de nuevo! – stighy

4

Usted tiene un par de ejemplos de cómo agregarlo al archivo web.config, pero yo sugeriría que considere la posibilidad de añadir un archivo XML 'localización' de App_Data y léalo desde allí en lugar de contaminar el archivo web.config con personalizaciones para cada instalación. Puede leer este archivo durante el inicio de la aplicación y almacenar los valores en HttpRuntime.Cache por clave, recuperándolos de allí según sea necesario. Tenga en cuenta que necesita una forma de regenerarlos si se eliminan de la caché (o marcarlos como no extraíbles). Utilice la misma técnica para codificarlo para un atributo en el archivo XML o, si es más largo, guárdelo en CDATA en el valor del nodo.

Uso una técnica como esta con dos archivos XML, valores predeterminados y localizaciones. Los valores predeterminados proporcionan valores predeterminados para los aspectos localizables de la aplicación. Las localizaciones, si están presentes, anularán los valores predeterminados. Estos se cargan, en mi caso, en un objeto Singleton para la aplicación que tiene propiedades fuertemente tipadas para los valores. Tenga en cuenta que esto abarca mucho más que simplemente cadenas localizadas; pueden ser arbitrariamente complejos. El objeto Singleton tiene métodos para leer y aplicar valores predeterminados y localizaciones dada la ruta al archivo XML.

Cuestiones relacionadas