2013-03-14 16 views
5

sto cercando di utilizzare la localizzazione nel mio progetto, ma non riesco a trovare un modo per accedere ai miei resx da JavaScript. Mi sono guardato intorno un po 'e non penso che il metodo' AJAX call 'sarebbe l'ideale per il mio progetto dato che ho messo a tacere un sacco di stringhe che devono essere recuperate e che dovrebbero semplicemente spammare il server!Utilizzo dei file di risorse (resx) in javascript

se ho appena messo nel mio HTML allora funziona con questo codice:

@using Resources 
<p>@Html.Raw(ISt_Localization.January)</p> 

immagino una delle cose che potrei fare è mettere tutte le corde in un div nascosto e quindi ottenere il contenuto dal il div in mio javascript ma questo non sarebbe molto efficace ..

+0

è il codice js in file .js esterni? – dakait

+0

I file resx risiedono sul server, JavaScript risiede sul client. È necessario fornire un metodo di comunicazione, sempre che sia un campo nascosto o ajax, ma javascript non può leggere i file resx. – Liam

+0

@dakait: sì, importa? se c'è una soluzione che richiede che il mio codice sia interno, potrei farlo? liam hmmm okey. Sono piuttosto nuovo nell'usare i file di risorse quindi grazie per aver spiegato – Utarehpson

risposta

3

Ho avuto una situazione simile e nel mio caso, ho creato una vista parziale separata che conteneva solo un blocco javascript dove ho messo tutte le stringhe di risorse necessarie per utilizzare nella logica lato client. Ogni stringa di risorse è stata definita come una variabile javascript. Potresti anche creare un array associativo.

Secondo lei parziale:

var Resources = { 
     January : "@Html.Raw(ISt_Localization.January)", 
     February : "@Html.Raw(ISt_Localization.February)", 
     ... 
}; 
+0

grazie! Proverò a fare qualcosa di simile! – Utarehpson

+0

Funziona come un fascino! creato una vista parziale. e fai una lista come nel tuo esempio. Quindi ho usato gli oggetti in cui avevo bisogno di loro! Vorrei poter raddoppiare questo voto! – Utarehpson

+0

Felice di poter aiutare :) –

3

si può anche provare la cosa sotto direttamente

@using Resources 

<script> 
var value = '@Resource.January'; 
/* work with value 
....... 
..... 

*/ 
</script>