Как связать поле ввода JSON Data On Html, используя Jquery In Asp. net MVC - PullRequest
0 голосов
/ 04 апреля 2020

Данные: JSON Форматировать

При нажатии кнопки «Редактировать» открывается модальное окно POPUP, но данные не связываются с вводом или выпадающим меню. Я пытаюсь, но не могу выяснить, в чем проблема.

Json:

[
  {
    "Buildings": {
      "Campuses": {
        "ID": 3,
        "Campus_Name": "Dhaka"
      },
      "ID": 9,
      "Building_Name": "D",
      "CampusID": 3
    },
    "Campuses": {
      "ID": 3,
      "Campus_Name": "Dhaka"
    },
    "ID": 17,
    "Floor_Name": "1st",
    "CampusID": 3,
    "BuildingID": 9
  }
]

ИЛИ

"[\r\n {\r\n \"Buildings\": {\r\n \"Campuses\": {\r\n \"ID\": 3,\r\n \"Campus_Name\": \"Dhaka\"\r\n },\r\n \"ID\": 9,\r\n \"Building_Name\": \"D\",\r\n \"CampusID\": 3\r\n },\r\n \"Campuses\": {\r\n \"ID\": 3,\r\n \"Campus_Name\": \"Dhaka\"\r\n },\r\n \"ID\": 17,\r\n \"Floor_Name\": \"1st\",\r\n \"CampusID\": 3,\r\n \"BuildingID\": 9\r\n }\r\n]"

Вид:

см. Изображение

Jquery:

$(document).ready(function () { 
            $.getJSON("/SuperAdmin/Floor/GetAllFloorList",
                function (json) {
                    var tr;
                    for (var i = 0; i < json.length; i++) {
                        tr = $('<tr/>');
                        tr.append("<td>" + "<a href='#' class='btn btn-success' onclick='EditFloorRecord(" + json[i].ID + ")' ><span class='fas fa-edit'></span></a> " 
                        $('table').append(tr);
                    }

                });
        });



            function EditFloorRecord(Floor_id) {
            var url = "/SuperAdmin/Floor/GetFloorInfoByFloor_Id?floor_id=" + Floor_id;
            $("#ModalTitle").html("Update Building Record");
            $("#SaveRecord").html("Update"); // Change Save message
            document.getElementById('showeditFloorID').innerHTML = '<input class="form-control" id="FloorId" name="ID" readonly ></input>'; //Floor Id Show  kora jay
            $("#AddOrUpDateModal").modal();
            $.ajax({
                type: "POST",
                url: url,
                success: function (data) {
                    response = data;
                    document.getElementById('getbyid').innerHTML = JSON.stringify(response); //Floor ID 
                    var obj = JSON.parse(data); //parse use kora hoya say Text box ar sathay Bind korar jono
                    $("#FloorId").val(obj.ID);
                    $("#Floor_Name").val(obj.Floor_Name);
                    $("#CampusID option:selected").text(obj.Campuses.Campus_Name);
                    $("#CampusID option:selected").val(obj.CampusID);


                }
            })
        }    

1 Ответ

0 голосов
/ 04 апреля 2020

Согласно вашему ajax ответу вы получаете JSON Массив в качестве ответа. Таким образом, массив должен быть доступен с индексом. А также ключевое имя Здания . Таким образом, вы должны сказать, obj.Buildings для доступа к свойствам зданий. Например, если вы хотите получить доступ к идентификатору зданий, вы должны сказать Buildings.ID. Поскольку ваш JSON возвращает массив, вы должны сделать как response [0] .Buildings.ID, чтобы получить доступ к данным вашего первого здания.

Нет необходимости преобразовывать ответ в JSON, var obj = JSON .parse (data), как это. Потому что ваш ответ уже является JSON объектом. Вы можете использовать объект данных напрямую.

Ваш JSON Ответ:

[
{"Buildings":{"Campuses":{"ID":3,"Campus_Name":"Dhaka"},
"ID":9,"Building_Name":"D","CampusID":3},
"Campuses":{"ID":3,"Campus_Name":"Dhaka"},"ID":17,"Floor_Name":"1st",
"CampusID":3,"BuildingID":9}
]

Вы пытались получить доступ, как показано ниже? Здесь данные это массив. Вы можете получить доступ с индексом. Чтобы получить первый элемент в массиве ответов, вы можете сделать, как показано ниже.

data[0].Buildings.ID
data[0].Buildings.Floor_Name
data[0].Buildings.CampusID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...