Program Club

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

proclub 2021. 1. 6. 20:00
반응형

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

여기에서 javascript에서 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>
}

참조 URL : https://stackoverflow.com/questions/26344089/how-to-get-json-object-from-razor-model-object-in-javascript

반응형