加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 23:43:47 所属栏目:百科 来源:网络整理
导读:我有一个链接到Item表的 Images表(一个Item可以有很多Images).它们由Item Id链接. 我想在详细信息页面上返回项目的所有图像.我一直在尝试使用Viewbag来实现这个目标(下面). 控制器: ViewBag.imageFile = (from f in storeDB.Images where f.ItemId == id se
我有一个链接到Item表的 Images表(一个Item可以有很多Images).它们由Item 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    
}

以上将为每个ImageUrl返回’System.Collections.Generic.List`1 [System.String]’.
我认为问题是对象是返回而不是实际的List项字符串值,但无法弄清楚如何将其转换为我需要的字符串.计划是编辑此foreach以为每个URL创建img链接.

我也有以下Viewbag(测试看我能够至少获得Urls):

ViewBag.imageURL = string.Join(",",ViewBag.imageFile);

以上内容返回正确的URL,但它们都在一个以逗号分隔的字符串中.

感谢任何帮助.

解决方法

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

@foreach (var image in ((List<string>)ViewBag.imageFile)) 
{
    @image
}

ViewBag.imageFile是完整的列表,即使在循环内部也是如此.图像循环变量将是循环每个回合中列表中的当前项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读