2014-03-01 73 views
0

我無法理解爲什麼我的JSON不能正確解析。我解析一個C#字典到我的控制器中的JSON字符串。輸出在那裏是正確的。當我將字符串傳回給我的部分視圖時,它不能正確呈現,並且我得到「意外令牌&」我試圖用多種方式將它返回給視圖,但無濟於事。MVC視圖 - JSON不能正確解析控制器

查看:

var data = @Model.JSONDict 
    //data output - var data = {"3/1/2014":2,"2/28/2014":1,"2/27/2014":1,"2/26/2014":0,"2/25/2014":0,"2/24/2014":0,"2/23/2014":0} 


    //var keys = Object.keys(data); 

控制器:

string output = JsonConvert.SerializeObject(dict); 

//Resulting Output = "{\"3/1/2014\":2,\"2/28/2014\":1,\"2/27/2014\":1,\"2/26/2014\":0,\"2/25/2014\":0,\"2/24/2014\":0,\"2/23/2014\":0}" 

      ViewData["allEntries"] = output; 
      model.JSONDict = output; 

      return PartialView("_Graph", model); 

我也曾嘗試解析出& acocording這個帖子:Cannot get data in a view after parsing json data from controller in asp.net mvc像這樣,但得到了同樣的錯誤信息:

storejson= getJSonObject("@ViewBag.JsonData"); 

function getJSonObject(value) { 
    return $.parseJSON(value.replace(/"/ig, '"')); 
} 
+0

在你的視圖中嘗試'var data = @ Html.Raw(Json.Encode(@ Model.JSONDict))' – Leron

+0

這樣做的竅門!謝謝! – aoakeson

+0

好的,我發佈了一個答案。如果它有效,並且你願意,你可以接受它。快樂編碼:) – Leron

回答

1

問題是在輸出JSON編碼。爲了解決這個問題,你可以使用@Html.Raw()像這樣:

var data = @Html.Raw(Json.Encode(@Model.JSONDict)) 

但被告知,使用@Html.Raw()可能會導致一些安全問題,因此必須謹慎使用。