用c中的javascript数组填充razor表#
我有一个javascript数组,该数组从rest检索。我想在razor foreach中填充此数组结果。但我无法在javascript中获得全局数组结果。我该怎么做 这是我的javascript用c中的javascript数组填充razor表#,javascript,c#,asp.net-mvc,razor,Javascript,C#,Asp.net Mvc,Razor,我有一个javascript数组,该数组从rest检索。我想在razor foreach中填充此数组结果。但我无法在javascript中获得全局数组结果。我该怎么做 这是我的javascript function getAlarmModels(cb) { $.ajax({ url: "SomeURL", type: "GET", contentType: "application/json; charset=utf-8",
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++)
{
}
}
@for(int i=0;i您不能使用Razor呈现通过AJAX接收的数据。原因是页面生命周期:
1) 控制器操作处理请求并返回视图
2) 视图在服务器端用Razor呈现,生成的HTML被传递到客户端
3) 客户端接收HTML并在客户端执行任何嵌入式JavaScript。这包括任何AJAX调用
正如您所看到的,在JS代码运行时,任何Razor语法都早已转换为HTML。另一方面,在Razor渲染视图时,还没有可用的JS变量
您可以做什么:
- 对AJAX调用的回复返回服务器端用Razor呈现的完成的HTML(而不是JSON)
- 使用JS模板语言,比如使用JS而不是Razor在客户端呈现JSON数据
Razor是服务器端代码—在将文档发送到视图之前,它在服务器上执行。此时甚至不存在javascript数组