在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对象。
答案 0 :(得分:104)
您可以使用以下内容:
var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));
这将输出以下内容(未看到您的模型我只包含一个字段):
<script>
var json = [{"State":"a state"}];
</script>
<强> AspNetCore 强>
AspNetCore使用Json.Serialize
Json.Encode
个整数
var json = @Html.Raw(Json.Serialize(@Model.CollegeInformationlist));
MVC 5/6
您可以使用Newtonsoft:
@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model,
Newtonsoft.Json.Formatting.Indented))
这使您可以更好地控制json格式,即如上所述缩进,camelcasing等。
答案 1 :(得分:2)
使用代码var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));
您需要使用JSON.parse(JSON.stringify(json))
;
答案 2 :(得分:1)
如果你想从yor模型中创建json对象,请执行以下操作:
foreach (var item in Persons)
{
var jsonObj=["FirstName":"@item.FirstName"]
}
或使用Json.Net从您的模型中制作json:
string json = JsonConvert.SerializeObject(person);
答案 3 :(得分:1)
在ASP.NET Core中,IJsonHelper.Serialize()返回IHtmlContent
,因此您无需通过调用Html.Raw()
来包装它。
应该如此简单:
<script>
var json = @Json.Serialize(Model.CollegeInformationlist);
</script>
答案 4 :(得分:1)
将对象从控制器传递到视图,将其转换为无需编码的标记,然后将其解析为json。
@model IEnumerable<CollegeInformationDTO>
@section Scripts{
<script>
var jsArray = JSON.parse('@Html.Raw(Json.Encode(@Model))');
</script>
}