簡體   English   中英

如何從 JavaScript 中的 Razor 模型對象獲取 JSON 對象

[英]How to get JSON object from Razor Model object in javascript

在 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));

這將輸出以下內容(沒有看到您的模型,我僅包含一個字段):

<script>
    var json = [{"State":"a state"}];   
</script>

工作小提琴

AspNetCore

AspNetCore使用Json.SerializeJson.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格式,即如上所述縮進,駝峰包裝等。

在ASP.NET Core中, IJsonHelper.Serialize()返回IHtmlContent因此您無需通過調用Html.Raw()來包裝它。

它應該很簡單:

<script>
  var json = @Json.Serialize(Model.CollegeInformationlist);
</script>

使用代碼后var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));

您需要使用JSON.parse(JSON.stringify(json)) ;

如果要從模型中創建json對象,請執行以下操作:

  foreach (var item in Persons)
   {
    var jsonObj=["FirstName":"@item.FirstName"]
   }

或使用Json.Net從您的模型制作json:

string json = JsonConvert.SerializeObject(person);

將對象從控制器傳遞到視圖,將其轉換為標記而不進行編碼,然后將其解析為json。

@model IEnumerable<CollegeInformationDTO>

@section Scripts{
    <script>
          var jsArray = JSON.parse('@Html.Raw(Json.Encode(@Model))');
    </script>
}

以下代碼對我有用

var chartD =  JSON.parse(JSON.stringify([@Json.Serialize(@Model)]));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM