2012-08-31 50 views
0

我有以下LINQ代码。如何在视图中使用GroupBy数据 - ASP.NET MVC 4

public List<IGrouping<Guid, ProfileImage>> GetAllUser() 
{ 
    return _profileImageRepository.QueryProfileImage() 
     .GroupBy(g => g.UserId) 
     .ToList(); 
} 

的想法是,它会检索所有用户的个人资料图片,但是如果用户有一个以上的形象,只能返还最后一张图像。

我不确定它是否正确,但那不是我最大的问题。

在我的控制器中,我有以下代码。

_homeViewModel.ProfileImages = _profileImageService.GetAllUser(); 

视图模型:

public List<IGrouping<Guid, ProfileImage>> ProfileImages { get; set; } 

我最大的问题是,我怎么在我看来用这个,这样我可以打印正确的信息。

当我看到在immidiate Windows中的数据,所以它看起来是这样的:

Model.ProfileImages 
Count = 2 
    [0]: {System.Data.Objects.ELinq.InitializerMetadata.Grouping<System.Guid,Zipr.Models.ProfileImage>} 
    [1]: {System.Data.Objects.ELinq.InitializerMetadata.Grouping<System.Guid,Zipr.Models.ProfileImage>} 

我试图做到这一点:

<ul> 
    @foreach (var image in Model.ProfileImages) 
    { 
     <li> 
      <img src="@Url.Content(String.Format("~/Content/uploads/thumbs/{0}", image.ThumbPath))" alt="" /> 
     </li> 
    } 
</ul> 

任何人都有一个解决方案,我怎么可以访问我的属性ThumbPath和更多?

+0

的情况下,你能告诉我们你的模型类 – Jorge

回答

0

它似乎并不是你感兴趣的ID;所以改变这个返回的ProfileImage

public List<ProfileImage> GetAllUser() 
{ 
    return _profileImageRepository.QueryProfileImage() 
     .GroupBy(g => g.UserId) 
     .Select(u => u.First() } 
     .ToList(); 
} 

列表现在,当您的视图遍历图像这将是真正得到一个ProfileImage对象,而不是一个IGrouping

+0

谢谢!!!!!!! – Onke

相关问题