因此,我需要根據數據庫中的數據向我的視圖中的字符串數組傳遞JavaScript函數。所以我有這樣的代碼在控制器:ASP .NET MVC3 ViewBag消毒字符串
string top_six_string = "[";
foreach (ObjectModel om in collection)
{
myProject.Models.BlobFile file = null;
if (om.BlobFile != null)
{
file = om.BlobFile;
}
else if (om.BlobFiles.Count != 0)
{
file = om.BlobFiles.First();
}
if (file != null)
{
top_six_string += " \"" + file.BlobFileID + "\",";
}
}
top_six_string = top_six_string.TrimEnd(',');
top_six_string += "]";
ViewBag.TopSixList = top_six_string;
現在,我不是特別理解爲什麼我們既有BlobFile場和BlobFiles集,但這並不是這一點。重點是,調試表明,我準確地得到了我想要的字符串(形式爲[「25」,「21」,「61」,「59」])。
但在運行JavaScript的時候,我得到了令人困惑的錯誤「意外字符&」,和一點點源Chrome中查看使我瞭解到,串出來看是這樣的:
[ "25", "21", "61", "59"]
所以我的假設是,ViewBag正在清理字符串,它通過了顯示在HTML中,但顯然這不是我現在關心的。我的假設是否正確?有沒有另一種方式來傳遞這些信息?有沒有辦法可以將字符串強制回引號?
這是一個壞主意,原始字符串發送到您的網站,而第一消毒它們@ Html.Raw:
你想要的輸出視圖中的值時,是這樣的。惡意用戶可以使用您的JavaScript發送自己的數據,並破解您的網站。小心。 –