2011-09-20 43 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