Вызов JSON, возвращающий «неопределенный»

0

Я относительно новичок в использовании JSON и столкнулся с проблемой, которую я не могу решить. Я установил общий обработчик (подробно описано ниже), а также страницу с вызовом JSON, чтобы получить ответ от обработчика и отобразить его.

Страница с вызовом JSON:

<script type="text/javascript">
    $(document).ready(function () {

        triggerCall();

        function triggerCall() {
            $.ajaxSetup({
                type: 'POST',
                headers: { "cache-control": "no-cache" }
            });

            $.ajax
              (
                {
                    type: "POST",
                    url: "Services/DepartmentListHandler.ashx",
                    contentType: "application/json;charset=utf-8",
                    dataType: "json",
                    async: false,
                    cache: false,
                    success: function (data) {
                        alert(data.msg);
                        displayDirectory(data.msg);
                    },
                    error: function (x, e) {
                        alert("The call to the server side failed. " + x.responseText);
                    }
                }
              );
        }

        function displayDirectory(dirlist) {
            var tablestring = '<table class="centered-table"><tr><td colspan="2">';
            tablestring = tablestring + "<tr><td><u>DeptCode</u></td><td><u>HeaderText</u></td></tr>";

            for (var i = 0, len = dirlist.length; i < len; ++i) {
                tablestring = tablestring + "<tr>";
                tablestring = tablestring + "   <td>" + dirlist[i].DeptCode + "</td>";
                tablestring = tablestring + "   <td>" + dirlist[i].HeaderText + "</td>";
                tablestring = tablestring + "</tr>";
            }

            tablestring = tablestring + "</table>";
            $('#divDirectoryList').html(tablestring);
        }

    });

    </script>


<div id="divDirectoryList"></div>

Метод обработчика:

Public Class DepartmentListHandler
Implements System.Web.IHttpHandler

Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    Dim json = New JavaScriptSerializer()

    Dim lst As New List(Of DepartmentList)

    Dim cls1 As New DepartmentList(1, 0, "DEP1", "Header", 1, True, False)
    lst.Add(cls1)

    Dim serialisedList As String = json.Serialize(lst)

    context.Response.ContentType = "application/json"
    context.Response.Write(serialisedList)
End Sub

ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
    Get
        Return False
    End Get
End Property

End Class

Все, кажется, происходит, что предупреждение в ветке "success" возвращает "undefined" каждый раз, и таблица вообще не отображается.

Может ли кто-нибудь увидеть, где я ошибаюсь?

Большое спасибо!

  • 0
    Можете ли вы опубликовать сгенерированный JSON вместо кода, генерирующего JSON
  • 0
    Можете ли вы опубликовать образец сгенерированного JSON вместо .net-кода, который генерирует JSON.
Показать ещё 8 комментариев
Теги:

2 ответа

0

Я думаю, что данные json, которые вы сериализуете в нашем коде, неправильно отформатированы. Данные json, которые должны отображаться как "data.msg", должны быть получены как

{
    msg: 'some message',
    data:'some data'
};
0

Фактически на стороне клиента вы получите коллекцию объектов [object Object], этот объект содержит ваш список объектов.

Print console.log("данные", данные); и увидеть в лисице.

вы можете просто получить

data[0].msg;
data[0].id;

или вы можете выполнить итерацию объекта java-скрипта с помощью jquery, а затем получить как ниже

data.msg;
data.id

Ещё вопросы

Сообщество Overcoder
Наверх
Меню