如何解决获取多个列表并将其显示在视图中
我有一个这样的系统,我可以这样输入 other ,员工和经销商信息(存在更多字段,但尝试保留很简单)。
+----+---------+--------------+------------+-------+
| ID | itemId | memberTypeId | MemberType | price |
+----+---------+--------------+------------+-------+
| 1 | 202 | 2 | employee | 2.00 |
| 2 | 202 | 3 | dealer | 3.00 |
| 3 | 101 | 1 | other | 4.00 |
+----+---------+--------------+------------+-------+
我正在尝试在我的网站上进行更新功能。当我基于ItemId进行数据库调用以获取所有内容时。
以下是帮助程序类中的此类代码:
public class Item {
public static List<ItemOption> GetItemOpttions(long itemID)
{
using (DBContext context = new DBContext())
{
List<ItemOptionDTO> ItemOptionsDto = (
from I in context.ItemOptions
where I.ItemID == itemID
select new ItemOptionDTO
{
ItemID = I.ItemID,MemberTypeId = I.MemberTypeId
MemberType = I.MemberType,Price = I.Price,}).ToList();
return ItemOptionsDto;
}
}
}
因此,当我获取数据并将其存储在列表中时。根据保存方式,它可以是一行数据,也可以是两行。选项“其他”将始终作为一行数据保存到数据库中,而“员工和经销商”将被另存为共享同一ItemId的两行。调用时,行数会根据在较早的日期/时间创建的每个项目而有所不同。
我正在尝试将此信息返回给控制器,并将其发送到显示可能会更新的正确值的View。这是我在控制器中拥有的东西。我不确定这是否是正确的方法,或者是否有更好的方法。
还要补充一点,如果该物料另存为雇员和经销商,它将其他列表保留为空/空。我认为无法执行此操作,因为它会导致 null异常错误
这是我到目前为止在控制器中拥有的东西:
public ActionResult UpdateItem(long itemID) {
List<ItemOptionDTO> itemOptionDto = Item.GetItemOpttions(itemID);
var other = itemOptionDto.Where(x => x.MemberTypeId == 1).FirstOrDefault();
var employee = itemOptionDto.Where(x => x.MemberTypeId == 2).FirstOrDefault();
var dealer = itemOptionDto.Where(x => x.MemberTypeId == 3).FirstOrDefault();
UpdateItemviewmodel viewmodel = new UpdateItemviewmodel(itemID,employee,dealer,option)
{
ItemId = option.ItemId,MemberType = option.MemberType,Price = other.price
ItemId = employee.ItemId,MemberType = employee.MemberType,Price = employee.price
ItemId = dealer.ItemId,MemberType = dealer.MemberType,Price = dealer.price
};
return View(viewmodel);
}
让我知道我还有什么可以提供的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。