我有 IEnumerable <> Car(在这里它不会让我使用尖括号)我的视图中使用的模型: 在我的JavaScript中,我必须创建一个对应于我的模型中的对象的对象数组。我无法在JavaScript中迭代我的模型 如果我使用剃须刀,则javascript代码无效:
<script type="text/javascript">
var carsArray = new Array();
@foreach (var item in Model)
{
//add the and item to carsArray object
}
//OR
for(i=0;i<@Model.Count();i++)
{
alert(@Model.ElementAt(i).Title);
//错误:当前上下文中不存在名称“i”
//add to array
}
</script>
谢谢!
答案 0 :(得分:4)
您是否尝试将内容包装在<text>
代码中?
var carsArray = new Array();
@foreach (var item in Model)
{
<text>carsArray.push("@item.Property")</text>
}
答案 1 :(得分:3)
您正在混合服务器端和客户端代码。
如果你想在服务器上吐出客户端代码,你可以。
但最好是将您的模型数据序列化为JSON并将其放在客户端上。
粗略的例子:
@{
var js = new JavaScriptSerializer();
}
myJavascriptObject.Models = @js.Serialize(myModels);
答案 2 :(得分:0)
另一种方法是将服务器模型转换为 javascript,然后对其进行迭代。
你可以像这样转换它:
var model = @Html.Raw(Json.Encode(Model));
这个方法对我有用。来自另一个 stackoverflow 答案的解决方案: