【发布时间】:2011-09-29 17:33:35
【问题描述】:
因此,我需要根据数据库中的数据将视图中的字符串数组传递给 JavaScript 函数。所以我在控制器中有这段代码:
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 中为 display 传递的字符串,但显然这不是我现在关心的问题。我的假设是否正确?有没有另一种方式来传递视图这个信息?有没有办法可以在之后将字符串强制转换回引号?
【问题讨论】:
-
不先清理它们就将原始字符串发送到您的站点是个坏主意。恶意用户可以使用您的 JavaScript 发送他自己的数据,然后入侵您的网站。小心。
标签: c# javascript html asp.net-mvc