C# MVC视图-JSON未从控制器正确解析
我无法理解为什么我的JSON解析不正确。我正在将c#字典解析为控制器中的JSON字符串。那里的输出是正确的。当我将字符串传递回我的局部视图时,它无法正确渲染,并且我得到了“意外标记&”,我尝试了多种方法将其返回到视图,但没有效果 查看:C# MVC视图-JSON未从控制器正确解析,c#,asp.net-mvc,json,C#,Asp.net Mvc,Json,我无法理解为什么我的JSON解析不正确。我正在将c#字典解析为控制器中的JSON字符串。那里的输出是正确的。当我将字符串传递回我的局部视图时,它无法正确渲染,并且我得到了“意外标记&”,我尝试了多种方法将其返回到视图,但没有效果 查看: var data = @Model.JSONDict //data output - var data = {"3/1/2014":2,"2/28/2014":1,&
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);
控制器:
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);
我也试着解析出了&A,根据这篇文章:像这样,但得到了相同的错误消息:
storejson= getJSonObject("@ViewBag.JsonData");
function getJSonObject(value) {
return $.parseJSON(value.replace(/"/ig, '"'));
}
问题是在输出中JSON是编码的。为了解决这个问题,您可以像这样使用
@Html.Raw()
:
var data = @Html.Raw(Json.Encode(@Model.JSONDict))
但是请注意,使用
@Html.Raw()
可能会导致一些安全问题,因此必须谨慎使用。在您看来,尝试var data=@Html.Raw(Json.Encode(@Model.JSONDict))
就是这样做的!谢谢好吧,那我就发布一个答案。如果它有效,如果你愿意,你可以接受它。快乐编码:)因为答案对你有用(@aoakeson),请接受它作为答案,因为它也会对其他人有帮助。