猿问

用c#中的javascript数组填充剃须刀表

我有一个 javascript 数组,该数组从休息中检索。我想在 razor 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”?


拉丁的传说
浏览 176回答 1
1回答

德玛西亚99

您不能使用 Razor 来呈现通过 AJAX 接收的数据。原因是页面生命周期:1) 控制器动作处理请求并返回一个视图。2) 在服务器端使用 Razor 渲染视图,将生成的 HTML 传递给客户端。3) 客户端接收 HTML 并在客户端执行任何嵌入的 JavaScript&nbsp;。这包括任何 AJAX 调用。如您所见,在您的 JS 代码运行时,任何 Razor 语法早已转换为 HTML。另一方面,在 Razor 呈现视图时,还没有可用的 JS 变量。你可以做什么:对您的 AJAX 调用的回复返回已在服务器端使用 Razor 呈现的完成的 HTML(而不是 JSON)。使用像Mustache这样的 JS 模板语言在客户端使用 JS 而不是 Razor 呈现 JSON 数据。
随时随地看视频慕课网APP
我要回答