如何在javascript中使用带有ILIST <models>的foreach循环?</models>

时间:2014-12-10 17:21:27

标签: javascript c# .net asp.net-mvc-3 razor

您好我在使用@model IList<TrackerModel>

的MVC 3应用程序中有一个剃刀视图

IList<TrackerModel>正从控制器中的操作方法传递给视图。 顾名思义,它是TrackerModels的列表。

我想将此列表传递给我视图底部的javascript块。

通过foreach循环运行列表,以便每个模型都使用某个函数。 例如

foreach(var mod in IList<TrackerModel>)
{
     LoadAttachments();
}

(我知道以上是错的,但你明白了) 可以这样做吗?

   @foreach(var mod in Model)
{
    LoadAttachments(@Newtonsoft.Json.JsonConvert.SerializeObject(mod));
}

尝试了上述建议,并得到以下错误。 @foreach =条件编译已关闭?

var =预期表达式?

in = expected; ?

LoadAttachments =当前上下文中不存在名称“LoadAttachments”?

@Newtonsoft =条件编译已关闭?

1 个答案:

答案 0 :(得分:1)

如果你想采用这种方法(而不是将你的javascript调用回专用的web服务),你需要将你的模型渲染成你的javascript可以使用的东西,比如json数组。

例如在您的视图中

 <script>
 @foreach(var mod in Model)
 {
      @:javascriptFunc(@Newtonsoft.Json.JsonConvert.SerializeObject(mod));
 }
 </script>

这会针对javascriptFunc中的每个项目致电IList<TrackerModel>。每个TrackerModel都是使用Newtonsfot.Json序列化的,它应该由Mvc自动包含,但是如果它不在Mvc 3中,你可以通过nuget添加它:https://www.nuget.org/packages/Newtonsoft.Json