为什么在Firefox,而不是这个@ Html.Raw()使用的Chrome

问题描述:

任何一个可以告诉我,为什么这段代码在Firefox的作​​品没有问题,但在铬我得到一个为什么在Firefox,而不是这个@ Html.Raw()使用的Chrome

System.*Exception”发生在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中工作。

+4

什么是堆栈跟踪?浏览器*真的*不应该在服务器端代码中有所作为。我高度怀疑别的是错的。 – David

+0

当我做了一个调用堆栈它说超过了Visual Studio支持的最大堆栈帧数。 – user6295447

+1

*Exception通常是由无限递归造成的。简单地说,每次你做一些事情就像创建一个变量,调用一个方法等一样,你将一个项目添加到堆栈中(一段内存)。它有一个有限的限制,当你触及时,繁荣。然而,在这个年代的今天,使用普通代码来添加足够的内存几乎是不可能的,这就是为什么它通常是无限递归的结果。总而言之,它与浏览器无关。如果它在Firefox中工作,Firefox必须运行缓存或其他东西。 –

我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代替

+0

我试过但没有工作。使用Html.Raw在Firefox中工作,并应在Chrome中工作 – user6295447

+0

这是出现的错误。符号加载跳过。符号加载优化模块System.Web.dll被跳过,因为只是我的代码被启用。 – user6295447

+0

这不是一个错误。这是来自Visual Studio的警告,关于无法加载所有符号以进行调试。它只会影响您在调试时进入代码的能力。这不是您的应用程序中的实际错误。 –