2013-02-06 10 views
14

Sto assemblando poche righe in JavaScript utilizzando Razor. Ho pensato che il modo più semplice sarebbe stato quello di assemblare per primo l'intero blocco JavaScript, quindi produrre l'intera cosa. Il problema è che le virgolette singole vengono visualizzate come & # 39 ;.Emissione di virgolette singole in Razor generato JavaScript Stringa

E 'possibile cambiare l'ultima riga per ottenere questo a scrivere correttamente:

var friendArray = new Array(); 
    @{ 
     int i = 0; 
     string jsString=""; 
     foreach(var friend in friends) 
     { 
      jsString = jsString + "friendArray["; 
      jsString = jsString + i.ToString(); 
      jsString = jsString + "]='"; 
      jsString = jsString + friend.displayname; 
      jsString = jsString + "';"; 
      i++; 
     } 
     @jsString; 
    } 

È possibile che questo genera questo:

friendArray[0]=& #39;Hollister& #39;;friendArray[1]=& #39;Festus& #39;; 

risposta

27

è possibile disattivare la codifica di HTML tramite emissione di questo modo :

+1

Che funziona. In realtà l'ho provato prima, ma non pensavo di aver bisogno di prefissare la @ così nulla ha scritto. Grazie. – Dave

+1

@Dave: Sì, senza di esso sei in modalità C#, quindi la modalità @ force razor/html restituisce quindi i risultati. –

+3

Questa è una possibile via per l'inserimento di script se quella jsString non è attendibile. Essere molto attenti. – Bon

Problemi correlati