Ich sammle ein paar Zeilen in JavaScript mit Razor. Ich dachte, der einfachste Weg wäre, zuerst den gesamten JavaScript-Block zusammenzusetzen und dann das ganze auszugeben. Das Problem ist, die einfachen Anführungszeichen werden als & # 39 gerendert.Ausgabe von einfachen Anführungszeichen in Razor generierte JavaScript-Zeichenfolge
Ist es möglich, die letzte Zeile zu ändern, dies richtig zu schreiben, zu erhalten:
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;
}
Die oben erzeugt dies:
friendArray[0]=& #39;Hollister& #39;;friendArray[1]=& #39;Festus& #39;;
Das funktioniert. Eigentlich habe ich es früher versucht, aber ich dachte nicht, dass ich das @ vorschreiben müsste, also schrieb nichts. Vielen Dank. – Dave
@Dave: Ja, ohne es bist du in C# -Modus, also die @ erzwingt Rasierer/HTML-Modus so tatsächlich die Ergebnisse ausgibt. –
Dies ist ein möglicher Weg für die Skript-Injektion, wenn dieser jString nicht vertrauenswürdig ist. Sei sehr vorsichtig. – Bon