2014-03-01 49 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()可能会导致一些安全问题,因此必须谨慎使用。