代码之家  ›  专栏  ›  技术社区  ›  user1436795

用c语言中的javascript数组填充razor表#

  •  1
  • user1436795  · 技术社区  · 7 年前

    我有一个javascript数组,数组从rest检索。我想在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++)
        {
    
        }
    }
    

    我怎样才能进入“窗口PreviousBill”?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Georg Patscheider    7 年前

    不能使用RaRor来呈现通过Ajax接收的数据。原因是页面生命周期:

    1)控制器操作处理请求并返回视图。

    2)用剃刀在 服务器端 ,生成的HTML将传递给客户端。

    3)客户端接收HTML并在 客户端 . 这包括任何ajax调用。

    正如您所看到的,在您的JS代码运行时,任何Rayor语法都已被长期转换为HTML。另一方面,在razor呈现视图时,还没有js变量可用。

    你能做什么:

    • 对ajax调用的回复返回已完成的html(而不是json),该html已在服务器端用razor呈现。
    • 使用js模板语言 Mustache 使用js而不是razor在客户端呈现js on数据。