我正在尝试访问列表中的前三个图像。
现在我正在尝试使用它来访问列表中的第一个图像:
@if ( Model.ImageDto.ImageList != null && Model.ImageDto.ImageList.Count > 0)
{
<img src="@Url.Content(Model.ImageDto.ImageList[0].imgExample)" class="img-responsive">
}
else
{
<img class="img-responsive" src="~/1.jpg" />
}
这样做三次但是收到错误。
我尝试过ImageList.First(),但效果不佳。
在列表中访问这三个图像的最佳方法是什么?
这是我收到的错误:
CS1061: 'ImageDto' does not contain a definition for 'ImageItems' and no extension method 'ImageItems' accepting a first argument of type 'Dto.ImageDto' could be found (are you missing a using directive or an assembly reference?)
谢谢
答案 0 :(得分:0)
有几种方法可以做到这一点,但我通常会在ViewModel / Controller中执行此操作,以便您拥有适当的集合。
VM
public IEnumerable<string> Images {get; set;} = new List<string>();
控制器或其他服务层,假设该属性被称为imgExample,如前所述,获取前三个并将它们存储在模型的Images集合中。
vm.Images = ImagesDto.Take(3).Select(i => i.imgExample)
然后你可以在视图上循环浏览它们
@if(Model.Images.Count > 0)
{
@foreach(var img in Model.Images)
{
<img src="@img" class="img-responsive" />
}
}
else
{
<p>No Images</p>
}
当然,您不需要在后端执行此操作,但我尝试不在我的MVC项目的UI中添加太多逻辑