我有一个 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”?
1 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
您不能使用 Razor 来呈现通过 AJAX 接收的数据。原因是页面生命周期:
1) 控制器动作处理请求并返回一个视图。
2) 在服务器端使用 Razor 渲染视图,将生成的 HTML 传递给客户端。
3) 客户端接收 HTML 并在客户端执行任何嵌入的 JavaScript 。这包括任何 AJAX 调用。
如您所见,在您的 JS 代码运行时,任何 Razor 语法早已转换为 HTML。另一方面,在 Razor 呈现视图时,还没有可用的 JS 变量。
你可以做什么:
对您的 AJAX 调用的回复返回已在服务器端使用 Razor 呈现的完成的 HTML(而不是 JSON)。
使用像Mustache这样的 JS 模板语言在客户端使用 JS 而不是 Razor 呈现 JSON 数据。
- 1 回答
- 0 关注
- 175 浏览
添加回答
举报
0/150
提交
取消