为什么在Firefox,而不是这个@ Html.Raw()使用的Chrome
任何一个可以告诉我,为什么这段代码在Firefox的作品没有问题,但在铬我得到一个为什么在Firefox,而不是这个@ Html.Raw()使用的Chrome
System.StackOverflowException”发生在System.Web.dll中。
<div id="tabs-1">
@if (ViewBag.Raw != null)
{
@Html.Raw(ViewBag.Raw)
}
</div>
我从数据库中这样
var querys = item.Database.SqlQuery<stuffID>("select Text from stuffFiles where [email protected]", new SqlParameter("@stuffID", id));
获取数据,我走的是文字,我需要这样的
foreach (var items in querys)
{
paths = items.Text;
}
ViewBag.Raw = paths;
我不明白为什么它不”在Chrome中工作。
我manged得到它与这段代码
@Html.Raw(HttpUtility.HtmlDecode(ViewBag.Raw))
工作从我的理解@ Html.Raw呈现未编码的HTML,因此需要首先被解码。
也许你的代码正在做它不应该做的事情。
您的意思是Concat的从text
所有items
你得到querys
item
文本和所有以前的将被覆盖
foreach (var items in querys)
{
paths = items.Text; //try to replace this with the line below
//paths = paths + items.Text + "," ;
}
ViewBag.Raw = paths;
我
你的代码除非你知道你在做什么,否则建议不要使用Html.Raw
。每个人都应该使用HttpServerUtility.HtmlEncode
代替
我试过但没有工作。使用Html.Raw在Firefox中工作,并应在Chrome中工作 – user6295447
这是出现的错误。符号加载跳过。符号加载优化模块System.Web.dll被跳过,因为只是我的代码被启用。 – user6295447
这不是一个错误。这是来自Visual Studio的警告,关于无法加载所有符号以进行调试。它只会影响您在调试时进入代码的能力。这不是您的应用程序中的实际错误。 –
什么是堆栈跟踪?浏览器*真的*不应该在服务器端代码中有所作为。我高度怀疑别的是错的。 – David
当我做了一个调用堆栈它说超过了Visual Studio支持的最大堆栈帧数。 – user6295447
StackOverflowException通常是由无限递归造成的。简单地说,每次你做一些事情就像创建一个变量,调用一个方法等一样,你将一个项目添加到堆栈中(一段内存)。它有一个有限的限制,当你触及时,繁荣。然而,在这个年代的今天,使用普通代码来添加足够的内存几乎是不可能的,这就是为什么它通常是无限递归的结果。总而言之,它与浏览器无关。如果它在Firefox中工作,Firefox必须运行缓存或其他东西。 –