I'm using asp MVC4 for web app development.
I would like to traverse a list of objects from a ViewModel.
Below is the class of the object:
public class User
{
public int Id {get; set;}
public string Name {get; set;}
public string Address {get; set;}
public string Department {get; set;}
}
Below is my ViewModel
class:
public class UserViewModel
{
public List<User> AllUsers {get; set;}
public bool IsDeleted {get; set;}
}
As seen in the UserViewModel
class, I have a list of objects of type User
. Now i would like to iterate through each of the user object in AllUsers
list using Jquery
and fetch data from them.
In order to do so, I tried doing something like the following:
$(@Model.AllUsers).each( function(){ .... });
I have tried different combination using the above approach, but couldn't succeed. Can anyone suggest a solution for the same.
Thanks in advance.
I'm using asp.net MVC4 for web app development.
I would like to traverse a list of objects from a ViewModel.
Below is the class of the object:
public class User
{
public int Id {get; set;}
public string Name {get; set;}
public string Address {get; set;}
public string Department {get; set;}
}
Below is my ViewModel
class:
public class UserViewModel
{
public List<User> AllUsers {get; set;}
public bool IsDeleted {get; set;}
}
As seen in the UserViewModel
class, I have a list of objects of type User
. Now i would like to iterate through each of the user object in AllUsers
list using Jquery
and fetch data from them.
In order to do so, I tried doing something like the following:
$(@Model.AllUsers).each( function(){ .... });
I have tried different combination using the above approach, but couldn't succeed. Can anyone suggest a solution for the same.
Thanks in advance.
Share Improve this question asked Jun 9, 2015 at 10:56 ZaxZax 3,0107 gold badges56 silver badges78 bronze badges 8 | Show 3 more comments4 Answers
Reset to default 14Assign your collection to a javascript variable using
var users = @Html.Raw(Json.Encode(Model.AllUsers))
which you can then iterate over
$.each(users, function(index, item) {
// access the properties of each user
var id = item.Id;
var name = item.Name;
....
});
<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 generally is unhappy with razor components although if the above is part of an CSHTML file it will work.
The other approaches are:
- Display the collection using razor
@foreach ...
- Pass the collection as a parameter from you webpage into a JavaScript function on some event
How are you calling this function and what does it do?
In My Case, I fixed by this way :
@for(int i=0;i<Model.AllUsers.Count;i++)
{
@: var name = '@Html.Raw(@Model.AllUsers[i].Name)';
@:alert(name);
}
$.each()
function in that way:$.each(@Model.AllUsers, function() {});
? – SzybkiSasza Commented Jun 9, 2015 at 10:58@foreach(var user in @Model.AllUsers) {//try }
. cheers – super cool Commented Jun 9, 2015 at 11:00@
notation i.e@if(@status == false)
inside loop . – super cool Commented Jun 9, 2015 at 11:13