在viewmodel对象中,下面是属性:
public IList<CollegeInformationDTO> CollegeInformationlist { get; set; }
在VIEW中,JavaScript如下:
var obj = JSON.stringify('@Model.CollegeInformationlist');
alert(obj[1].State); //NOT WORKING, giving string char
$.each('@Model.CollegeInformationlist', function (i, item) {
var obj = JSON.stringify(item);
var r = $.parseJSON(obj);
alert(r.State); //just giving undefined.
});
请在这里指导,我如何在JavaScript中获得JSON对象。
6条答案
按热度按时间fumotvh31#
您可以使用以下内容:
这将输出以下内容(在没有看到您的模型的情况下,我只包含了一个字段,假设
@Model.CollegeInformationlist
是[{"State":"a state</script>"}]
):请注意,
Json.Encode()
将输入中的"<"
字符替换为"\x3C"
。它们在JSON中是等效的,但后者可以安全地注入JavaScript代码,而前者是一个XSS漏洞。Working Fiddle
AspNetCore
AspNetCore使用
Json.Serialize
代替Json.Encode
MVC 5/6
你可以使用Newtonsoft来实现:
这给了你更多的JSON格式控制,即。如上所述的缩进, Camel 套管等。
7kjnsjlb2#
在ASP.NET Core中,IJsonHelper.Serialize()返回
IHtmlContent
,因此您不需要将其 Package 为对Html.Raw()
的调用。它应该像这样简单:
cigdeys33#
使用后代码
var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));
你需要使用
JSON.parse(JSON.stringify(json))
;vs3odd8k4#
将对象从控制器传递到视图,将其转换为不编码的标记,并将其解析为json。
zxlwwiss5#
如果你想从你的模型中创建json对象,可以这样做:
或者使用Json.Net从你的模型中生成json:
brc7rcf06#
下面的代码对我来说是有效的