MVC视图 - JSON无法从控制器正确解析

时间:2014-03-01 23:26:48

标签: c# asp.net-mvc json

我无法理解为什么我的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, '"'));
}

1 个答案:

答案 0 :(得分:1)

问题是在输出中JSON是编码的。为了解决这个问题,您可以像@Html.Raw()那样使用:

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

但请注意,使用@Html.Raw()可能会导致一些安全问题,因此必须谨慎使用。