gpt4 book ai didi

c# - ASP .NET MVC3 ViewBag 清理字符串

转载 作者:搜寻专家 更新时间:2023-11-01 05:16:24 24 4
gpt4 key购买 nike

因此,我需要根据数据库中的数据,将我 View 中的一个字符串数组传递给 JavaScript 函数。所以我在 Controller 中有这段代码:

        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 传递的字符串,但显然这不是我现在关心的问题。我的假设是否正确?是否有另一种方式来传递 View 此信息?有没有办法可以在之后将字符串强制转换回引号?

最佳答案

当您在 View 中输出 ViewBag 的内容时,最有可能出现问题。默认情况下,Html 帮助程序会清理输出以帮助防止注入(inject)攻击。

在你的 View 中输出值时,你想要的是这样的:@Html.Raw(ViewBag.TopSixList)

关于c# - ASP .NET MVC3 ViewBag 清理字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6598668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com