1. ホーム
  2. javascript

[解決済み] javascriptでRazorモデルオブジェクトからJSONオブジェクトを取得する方法

2023-02-07 07:53:30

質問

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オブジェクトを取得することができ、ここでガイドしてください。

どのように解決するのですか?

以下を利用するとよいでしょう。

var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));

これは以下のように出力されます(あなたのモデルを見ずに、私は1つのフィールドだけを含めました)。

<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の書式をより細かく制御することができます。例えば、上記のようにインデントしたり、キャメルケースを使用したりすることができます。