jQuery:如何遍历/迭代对象列表

时间:2015-06-09 10:56:37

标签: javascript jquery asp.net-mvc asp.net-mvc-4 razor

我正在使用asp.net MVC4进行Web应用程序开发。

我想遍历ViewModel中的对象列表。

以下是对象的类:

public class User
{
        public int Id {get; set;}
        public string Name {get; set;}
        public string Address {get; set;}
        public string Department {get; set;}
}

以下是我的ViewModel课程:

public class UserViewModel
{
      public List<User> AllUsers {get; set;}
      public bool IsDeleted {get; set;}
}

UserViewModel类所示,我有User类型的对象列表。现在,我想使用AllUsers遍历Jquery列表中的每个用户对象,并从中获取数据。

为了做到这一点,我尝试做了类似以下的事情:

$(@Model.AllUsers).each( function(){ .... });

我尝试过使用上述方法的不同组合,但无法成功。任何人都可以提出相同的解决方案。

提前致谢。

4 个答案:

答案 0 :(得分:9)

使用

将您的收藏分配到javascript变量
var users = @Html.Raw(Json.Encode(Model.AllUsers))

然后你可以迭代

$.each(users, function(index, item) {
  // access the properties of each user
  var id = item.Id;
  var name = item.Name;
  ....
});

答案 1 :(得分:2)

<script type="text/javascript">

    var UsersList = @Html.Raw(Json.Encode(Model.AllUsers))

    for (var i = 0; i < UsersList.length; i++) {
        alert(UsersList[i].Id);
        alert(UsersList[i].Name);

    } 
 </script>

答案 2 :(得分:0)

JavaScript通常对剃刀组件不满意,但如果以上是CSHTML文件的一部分,它将起作用。

其他方法是:

  1. 使用剃刀@foreach ...
  2. 显示集合
  3. 将集合作为参数从您的网页传递到某个事件的JavaScript函数
  4. 您如何调用此功能以及它的作用是什么?

答案 3 :(得分:0)

就我而言,我通过这种方式修复:

 @for(int i=0;i<Model.AllUsers.Count;i++)
 {
   @: var name = '@Html.Raw(@Model.AllUsers[i].Name)';
   @:alert(name);
 }