заполнить таблицу бритв с помощью массива JavaScript в C # - PullRequest
0 голосов
/ 12 июня 2018

У меня есть массив javascript, который извлекается из остальных.Я хочу заполнить этот массив в результате бритвы foreach.Но я не мог добраться до моего глобального результата массива в JavaScript.Как я могу это сделать?

Вот мой JavaScript;

function getAlarmModels(cb) {
    $.ajax({
        url: "SomeURL",
        type: "GET",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: failureCb,
        success: successCb,
        timeout: 60000
    });

    function failureCb(jqXHR, textStatus, errorThrown) {
        var errorCode = jqXHR.status;
        var errorText = textStatus;
        console.log("Error Code [" + errorCode + "]: " + errorText);
        if (cb)
            cb(null);
    }

    function successCb(data) {
        window.PreviousBill = JSON.parse(data);
        if (cb)
            cb(JSON.parse(data));
    }
}

Вот бритва;

@for (int i = 0; i <window.PreviousBill.Count ; i++)
    {

    }
}

Как мне получить доступ к "window.PreviousBill"?

1 Ответ

0 голосов
/ 12 июня 2018

Вы не можете использовать Razor для рендеринга данных, полученных через AJAX.Причина заключается в жизненном цикле страницы:

1) Действие контроллера обрабатывает запрос и возвращает представление.

2) Представление отображается с помощью Razor на стороне сервера ,полученный HTML-код доставляется клиенту.

3) Клиент получает HTML-код и выполняет любой встроенный JavaScript-код на стороне клиента .Это включает любые вызовы AJAX.

Как вы можете видеть, во время выполнения кода JS любой синтаксис Razor уже давно преобразован в HTML.С другой стороны, в тот момент, когда Razor отображает представление, переменные JS еще не доступны.

Что вы можете сделать:

  • ответ на ваш вызов AJAX возвращает готовый HTML (вместо JSON), который был обработан с помощью Razor на стороне сервера.
  • использует язык шаблонов JS, такой как Усы , для визуализации данных JSON на стороне клиента с использованием JS вместо Razor.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...