заполнить таблицу бритв с помощью массива JavaScript в C #

1

У меня есть массив 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"?

  • 0
    Razor - это код на стороне сервера - он выполняется на сервере перед отправкой документа на просмотр. Ваш массив JavaScript даже не существует в этой точке
Теги:
razor
asp.net-mvc

1 ответ

1
Лучший ответ

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

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

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

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

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

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

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

Ещё вопросы

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