Come accedere a una risorsa locale in un tema da una pagina ASP.net?
Domanda
Ho un file di risorse inserito nella cartella App_LocalResources all'interno la cartella per un tema in App_Themes in questo modo: \ App_Themes \ Theme1 \ App_LocalResources \ Resources1.aspx.resx
Come posso accedere alle risorse in questo file da un modulo web nel mio progetto, assumendo il modulo web è chiamato Resources1.aspx avendo Theme = "Theme1"?
Soluzione
È possibile utilizzare l'espressione "Risorse" per estrarre valori dal file di risorse, per esempio:
<h1><%$ Resources: H1 %></h1>
In alternativa, e soprattutto se si è in code-behind, utilizzare GetLocalResourceObject:
h1.InnerText = GetLocalResourceObject ( "H1" ).ToString ( );
EDIT: A volte rispondo troppo in fretta; io non credo temi sono localizzabili in questo senso, tuttavia ci sono alcune soluzioni. Si potrebbe avere elementi specifici a tema nel file di risorse e accedervi a seconda del tema corrente.
Altri suggerimenti
È possibile accedere globalresources situati in \ App_GlobalResources \ Generic.resx con;
<%= Resources.Generic.Cancel %>
Le risorse locali risiedono in una cartella App_LocalResources che non deve essere necessariamente essere collocato nella cartella principale. Per un localresource sarebbe;
<%$ Resources:Cancel%>
o
string labelCancel = GetLocalResourceObject("Cancel").ToString();
Per quanto riguarda la collocazione dei file di risorse in tema di cartelle vanno; Mi terrei miei temi e risorse separati e di programmazione a passare tra le varie risorse in un sito master / basepage o tali facendo uso di globalresources.