C# 无法在Razor foreach循环中使用Viewbag列表项

C# 无法在Razor foreach循环中使用Viewbag列表项,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我有一个链接到项目表的图像表(一个项目可以有多个图像)。它们由项目Id链接 我想返回详细信息页面上某个项目的所有图像。我一直在尝试使用Viewbag来实现这一点(如下) 控制器: ViewBag.imageFile = (from f in storeDB.Images where f.ItemId == id select f.ImageURL).ToList();

我有一个链接到项目表的图像表(一个项目可以有多个图像)。它们由项目Id链接

我想返回详细信息页面上某个项目的所有图像。我一直在尝试使用Viewbag来实现这一点(如下)

控制器:

ViewBag.imageFile = (from f in storeDB.Images
                               where f.ItemId == id
                               select f.ImageURL).ToList();    
视图:

@foreach (var image in ((List<string>)ViewBag.imageFile)) 
{
    @ViewBag.imageFile    
}
上面返回正确的URL,但它们都在一个字符串中,由逗号分隔


感谢您的帮助。

在视图的循环中,您应该使用循环变量:

@foreach (var image in ((List<string>)ViewBag.imageFile)) 
{
    @image
}
@foreach(变量图像在((列表)ViewBag.imageFile中))
{
@形象
}

ViewBag.imageFile
是完整的列表,即使在循环中,也将始终是完整的列表。
图像
循环变量将是循环每次循环时列表中的当前项。

ViewBag
不需要类型转换:

@foreach (var image in ViewBag.imageFile)) 
    {
        @image
    }

工作得很好。谢谢!
@foreach (var image in ViewBag.imageFile)) 
    {
        @image
    }