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

IT技术 javascript jquery asp.net-mvc asp.net-mvc-4 razor
2021-02-19 21:35:37

我正在使用 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个回答

使用

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;
  ....
});
谢谢你的回答。你能详细说明遍历部分吗?那是关于上面的 User 类。
2021-05-01 21:35:37
只是Html.Raw()行不通?它需要 Json.Encode 吗?
2021-05-03 21:35:37
这意味着 typeofUser将包含一个属性User- 但这不是您问题中的代码所表示的?
2021-05-12 21:35:37
@StephenMuecke:我在 JSON.parse 上遇到以下异常:在序列化类型为“System.Data.Entity.DynamicProxies.User_D02A520B40433C88E2D653B140881AE8C121BC55EC122BCB50866A.
2021-05-15 21:35:37
<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>

JavaScript 通常对 razor 组件不满意,尽管如果上述内容是 CSHTML 文件的一部分,它会起作用。

其他方法是:

  1. 使用剃刀显示集合 @foreach ...
  2. 将集合作为参数从您的网页传递到某个事件的 JavaScript 函数中

你如何调用这个函数,它有什么作用?

在我的情况下,我通过这种方式修复:

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