我无法理解为什么我的JSON无法正确解析。我正在将c#字典解析为控制器中的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);
我也试过解析&根据这篇文章: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 :(得分:1)
问题是在输出中JSON是编码的。为了解决这个问题,您可以像@Html.Raw()
那样使用:
var data = @Html.Raw(Json.Encode(@Model.JSONDict))
但请注意,使用@Html.Raw()
可能会导致一些安全问题,因此必须谨慎使用。