C# 如何创建列表<;ViewModel>;还有其他两类车型?MVC ASP.NET
如何使用其他两类模型创建列表C# 如何创建列表<;ViewModel>;还有其他两类车型?MVC ASP.NET,c#,json,asp.net-mvc,mapping,C#,Json,Asp.net Mvc,Mapping,如何使用其他两类模型创建列表 1型号: public class Item { public int ItemId { get; set; } public string Code { get; set; } public int QuantityInBase { get; set; } public bool IsHidden { get; set; } } 2型号: public class JsonViewModel { publi
public class Item
{
public int ItemId { get; set; }
public string Code { get; set; }
public int QuantityInBase { get; set; }
public bool IsHidden { get; set; }
}
2型号:
public class JsonViewModel
{
public List<JsonItem> Items { get; set; }
}
public class JsonItem
{
public string Name { get; set; }
public string Code { get; set; }
public double Price { get; set; }
}
这很难解释。我希望你明白我的意思 如果我理解正确,您可以在
code
属性上创建linq join
查询。
比如:
var rez= (from p in data
join q in webSocketData.Items on p.Code equals q.Code
select new ItemViewModel
{
ItemId = p.ItemId,
Code = p.Code,
Name = q.Name,
QuantityInBase = p.QuantityInBase ,
Price = q.Price,
IsHidden = p.IsHidden
}).ToList();
这将以
leftOuterJoin
的方式返回ItemViewModel
列表。如果我理解正确,您可以在code
属性上创建linq join
查询。
比如:
var rez= (from p in data
join q in webSocketData.Items on p.Code equals q.Code
select new ItemViewModel
{
ItemId = p.ItemId,
Code = p.Code,
Name = q.Name,
QuantityInBase = p.QuantityInBase ,
Price = q.Price,
IsHidden = p.IsHidden
}).ToList();
这将以
leftOuterJoin
的方式返回ItemViewModel
列表。我有一个错误:“join子句中的一个表达式的类型不正确。调用'join'时类型推断失败。”确定后,我改为:“在webSocketData.Items中加入q”我现在要测试。brbOk很好用!但是,如何在视图上显示此列表?“返回视图(“_itemslitpartial”,rez);”。在视图中添加了:“@model List”,但我仍然不能使用:“@Html.DisplayNameFor(model=>model.Code)”@DiPix,因为您有一个作为模型的列表。因此,您必须遍历所有项。类似于:@(模型中的foreach var item)Html.DisplayNameFor(item.code)
@DiPix,如果您使用的是Visual Studio,可以让它创建局部视图。单击addView,将显示一个模板,在那里选择一个模型(对您来说,它是ItemViewModel
),检查PartialView并从那里的模板中选择列表。我有一个错误:“join子句中的一个表达式的类型不正确。调用“join”时类型推断失败。”确定我更改为:“在webSocketData.Items中加入q”我现在就测试。brbOk工作正常!但是如何在我的视图中显示此列表?”返回视图(“_itemslitpartial”,rez);,并在视图中添加了:“@model List”,但我仍然不能使用:“@Html.DisplayNameFor(model=>model.Code)”@DiPix,因为您有一个作为模型的列表。因此您必须遍历所有项。类似于:@(模型中的每个变量项)Html.DisplayNameFor(item.Code)
@DiPix,如果您使用的是Visual Studio,您可以让它创建局部视图。单击addView,将显示一个模板,在那里选择一个模型(对于您来说,它是ItemViewModel
),检查局部视图并从那里的模板中选择列表。
var rez= (from p in data
join q in webSocketData.Items on p.Code equals q.Code
select new ItemViewModel
{
ItemId = p.ItemId,
Code = p.Code,
Name = q.Name,
QuantityInBase = p.QuantityInBase ,
Price = q.Price,
IsHidden = p.IsHidden
}).ToList();