14
我正在使用Razor在JavaScript中組裝幾行代碼。我認爲最簡單的方法是首先組裝整個JavaScript塊,然後輸出整個事情。問題是,單引號呈現爲&#39 ;.在Razor生成的JavaScript中輸出單引號字符串
是否有可能改變最後一行得到這個正確書寫:
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;
}
以上產生這樣的:
friendArray[0]=& #39;Hollister& #39;;friendArray[1]=& #39;Festus& #39;;
這是有效的。其實我早些時候嘗試過,但我並不認爲我需要在@的前面加上前綴,所以沒有寫任何東西。謝謝。 – Dave
@Dave:是的,沒有它你在C#模式,所以@力剃刀/ HTML模式,從而實際上輸出的結果。 –
如果jsString不受信任,這是腳本注入的可能途徑。要特別小心。 – Bon