Dans l'objet viewmodel, la propriété est la suivante:
public IList<CollegeInformationDTO> CollegeInformationlist { get; set; }
Dans VIEW, javascript est le suivant:
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.
});
S'il vous plaît guider ici, comment je peux obtenir un objet JSON en javascript.
Vous pouvez utiliser les éléments suivants:
var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));
Cela produirait ce qui suit (sans voir votre modèle, je n’ai inclus qu’un champ):
<script>
var json = [{"State":"a state"}];
</script>
AspNetCore
AspNetCore utilise Json.Serialize
au lieu de Json.Encode
var json = @Html.Raw(Json.Serialize(@Model.CollegeInformationlist));
MVC 5/6
Vous pouvez utiliser Newtonsoft pour cela:
@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model,
Newtonsoft.Json.Formatting.Indented))
Cela vous donne plus de contrôle sur le formatage JSON, c'est-à-dire indentez comme ci-dessus, camelcasing etc.
Après utilisation, codevar json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));
Vous devez utiliser JSON.parse(JSON.stringify(json))
;
Dans ASP.NET Core, le IJsonHelper.Serialize () renvoie IHtmlContent
. Il n'est donc pas nécessaire de l'envelopper avec un appel à Html.Raw()
.
Cela devrait être aussi simple que:
<script>
var json = @Json.Serialize(Model.CollegeInformationlist);
</script>
Si vous voulez créer un objet json à partir de votre modèle, procédez comme suit:
foreach (var item in Persons)
{
var jsonObj=["FirstName":"@item.FirstName"]
}
Ou utilisez Json.Net pour créer un json à partir de votre modèle:
string json = JsonConvert.SerializeObject(person);
Passez l'objet du contrôleur à la visualisation, convertissez-le en balisage sans l'encodage et analysez-le en json.
@model IEnumerable<CollegeInformationDTO>
@section Scripts{
<script>
var jsArray = JSON.parse('@Html.Raw(Json.Encode(@Model))');
</script>
}