2011-09-20 107 views
4

我只是想从我的控制器得到一个JSON字符串(使用剃刀语法MVC3)到客户端浏览器...如何获得JSON数据到一个Razor视图脚本块

在我的控制器我这样做用一个简单的对象(测试),它包含一个int和一个列表。

var jasonData = new JavaScriptSerializer().Serialize(test); 
ViewBag.JasonData = jasonData; 

在视图我这样做:

<script type="text/javascript"> 
    var initialData = @(ViewBag.JasonData); 
</script> 

Visual Studio中显示的数据看起来很不错,但是当它在浏览器中结束其四周有逃避所有代码这是不好的数据。

&var initialData = {&quot;DateId&quot;:32,&quot;Scores&quo .... 

这应该很简单!我究竟做错了什么??

+0

'jason'或'json'?我希望这是后者。 – ErikE

回答

8

使用@Html.Raw(),以防止正被编码的数据,如下所示:

<script type="text/javascript"> 
    var initialData = @Html.Raw(ViewBag.JasonData); 
</script> 
+0

万致谢......就像一个冠军! – Pablo

+0

VS 2012在使用时会给我一个脚本错误(显示为错误,而不是警告)。 Razor + Javascript解析器错误?错误在分号上,';'。 – yzorg

+0

@yzorg仅供参考 - 如果你写了'var initialData = @(Html.Raw(ViewBag.JsonData))这样的行;'Intellisense Error消失了。 – da7rutrak