ASP.NET – Inserire codice HTML nei Resource File (.resx)

Abbiamo già avuto modo di parlare in passato dei Resource File di ASP.NET, strumenti fondamentali per implementare un accesso centralizzato a contenuti testuali e multimediali della nostra applicazione, soprattutto in ottica di sviluppo multilanguage (come spiegato in questo articolo). Capita spesso, sviluppando applicazioni per il web, di avere la necessità di inserire contenuto HTML all’interno del testo contenuto in una o più chiavi di risorsa, come nell’esempio mostrato nella seguente screenshot:

html-in-resource-files-resx

Se ci limitassimo a inserire la chiave di risorsa HTML_Response all’interno di una pagina di qualsivoglia tipo – aspx, ascx, cshtml et. al. – otterremo esattamente la stringa mostrata nell’immagine, con tanto di elementi HTML visibili a schermo: questo perché l’engine di pubblicazione di ASP.NET, per ragioni di sicurezza, effettua automaticamente l’escape HTML dei caratteri speciali.

Fortunatamente è possibile fare in modo che questa conversione non abbia luogo: come spesso accade, il metodo varia a seconda del view engine utilizzato.

Razor

Se utilizzate Razor, cosa che personalmente vi auguro, tutto ciò che dovete fare è includere il riferimento alla risorsa all’interno del metodo @Html.Raw, come nell’esempio seguente:

Notare come, nel secondo esempio, è l’intero risultato finale della formattazione – e non la resource string – a dover essere incluso all’interno del blocco @Html.Raw.

ASP.NET

Nel caso di ASP.NET è possibile procedere in due modi, entrambi efficaci.

Con Response.Write

Con il controllo <asp:Literal>

Sfortunatamente, il secondo metodo non funzionerà: per ottenere quel risultato sarà necessario intervenire programmaticamente nel code-behind nel seguente modo:

Per il momento è tutto: felice sviluppo!

 

 

RELATED POSTS

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane.

View all posts by Ryan