您能告诉我如何在表格中选择多个具有多个不同ID的行并将其存储到ViewBag中吗?
此行可以获取ID为" 123":ViewBag.Name = (from m in myDatabase.myTable where m.id == "123" select m).ToList();
在视图中调用它:
<tr>
foreach(var item in ViewBag.Name)
{
<td>@item.ProductName</td>
<td>@item.Category</td>
}
</tr>
现在。我有一个列表来存储id的值。像这样:
List<string> list = new List<string>();
list.Add("123");
list.Add("456");
list.Add("789");
//.....
一个不完整的循环:
foreach(var item in list)
{
// ViewBag.Name = from m in myDatabase.myTable where ..........
}
请帮忙!
答案 0 :(得分:0)
ViewBag.Name
是动态类型,已分配给List<myTable>
您可以使用FirstOrDefault
查找现有列表中的项目。
foreach(var item in list)
{
var name = ViewBag.Name.FirstOrDefault(x=>x.ID == item);
if (name != null)
{
<td>@name.ProductName</td>
<td>@name.Category</td>
}
}
几点:
ViewBag.Name
会更好地命名,例如ViewBag.MyTableList
甚至只是复数ViewBag.Names
ViewBag
很难说出ViewBag.Name
和list
的设置位置。如果这些都在代码隐藏中,那么您可以过滤数据选择而不是在UI上过滤 - 这样会更有效。
答案 1 :(得分:0)
将List
替换为HashSet
(小优化):
HashSet<string> list = new HashSet<string>();
list.Add("123");
list.Add("456");
list.Add("789");
// ...
查询:
ViewBag.Name = (from m in myDatabase.myTable
where list.Contains(m.id)
select m).ToList();
添加模型进行查看,并将结果放入模型中,而不是ViewBag
。