[javascript] JavaScript의 Razor 모델 개체에서 JSON 개체를 가져 오는 방법

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.
    });

여기에서 자바 스크립트에서 JSON 객체를 얻는 방법을 안내하십시오.



답변

다음을 사용할 수 있습니다.

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 형식화, 즉 위와 같이 들여 쓰기, 카멜 케이스 등을 더 많이 제어 할 수 있습니다.


답변

ASP.NET Core에서 IJsonHelper.Serialize ()가 반환 IHtmlContent되므로 .NET 에 대한 호출로 래핑 할 필요가 없습니다 Html.Raw().

다음과 같이 간단해야합니다.

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


답변

사용 후 코드var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist));

당신은 사용이 필요합니다 JSON.parse(JSON.stringify(json));


답변

yor 모델에서 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>
}


답변