为什么这个@ Html.Raw()在firefox中运行而不是chrome

时间:2016-06-10 12:57:36

标签: asp.net-mvc google-chrome firefox

任何人都可以告诉我为什么这段代码在Firefox中没有问题,但在Chrome中我得到了

  System.Web.dll中发生

System.StackOverflowException。

<div id="tabs-1">
    @if (ViewBag.Raw != null)
    {
        @Html.Raw(ViewBag.Raw)  
    }
</div>

我从数据库中获取数据

var querys = item.Database.SqlQuery<stuffID>("select Text from stuffFiles where _id=@stuffID", new SqlParameter("@stuffID", id));

我正在接受我需要的文字

foreach (var items in querys)
{
    paths = items.Text;
}
ViewBag.Raw = paths;

我不明白为什么它在Chrome中不起作用。

2 个答案:

答案 0 :(得分:0)

也许你的代码正在做它本不该做的事情。

您的意思是从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代替

答案 1 :(得分:0)

我想让它使用这段代码

<input type="text" ng-model="otherLang" ng-change="peopleData.language=otherLang">

据我所知,@ Html.Raw呈现未编码的HTML,因此需要先解码。