Return 多视图模型数据到 HTML 视图
Return Multiple View Model data to HTML view
在我的 Web 应用程序中,我需要在不同表的 html 视图中显示两种类型的数据。
所以首先我创建了两个不同的视图模型来存储数据。
所以在控制器中我写了这段代码来发送数据到视图模型
List < RecognizedPartsViewModel > Reco = new List < RecognizedPartsViewModel > ();
var rData = (from i in db.InventoryMain join p in db.PartCategory on i.PartCatogary equals p.Id where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0 select new RecognizedPartsViewModel {
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category
}).ToList();
List < UnRecoPartsViewModel > unReco = new List < UnRecoPartsViewModel > ();
var rUnData = (from i in db.InventoryMain where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary == 0 select new UnRecoPartsViewModel {
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
ABCD = i.A_B_C_D_Category
}).ToList();
所以我需要知道我必须在同一个 html 视图中显示这些数据。那么如何在 html 视图中将这两个视图模型称为单独的列表?
您需要创建另一个可以获取两种类型数据的模型,即 1 List < RecognizedPartsViewModel >
和 1 List < UnRecoPartsViewModel >
,您可以将此模型传递给您的视图并访问您的每个列表使用此模型
如果您的数据模型具有问题中描述的结构,您可以在两种情况下使用 class:
public class PartsViewModel
{
public string PartNo { get; set; }
public string Description { get; set; }
public string Model { get; set; }
public int AvaQty { get; set; }
public int ReOrderQty { get; set; }
public string PartCato { get; set; } // Used only in the a table for RecognizedParts
public string ABCD { get; set; }
}
然后创建一个新的 class 以包含每个类别的分隔列表:
public class PartsDataModel
{
public List<PartsViewModel> RecognizedParts { get; set; }
public List<PartsViewModel> UnRecognizedParts { get; set; }
}
然后:
public ActionResult Index()
{
// ... copy your previous code here, but use `PartsDataModel` class
// instead of `RecognizedPartsViewModel `UnRecoPartsViewModel`.
var model = new PartsDataModel()
{
RecognizedParts = rData,
UnRecognizedParts = rUnData
}
// Create the view
return View(model);
}
在我的 Web 应用程序中,我需要在不同表的 html 视图中显示两种类型的数据。
所以首先我创建了两个不同的视图模型来存储数据。
所以在控制器中我写了这段代码来发送数据到视图模型
List < RecognizedPartsViewModel > Reco = new List < RecognizedPartsViewModel > ();
var rData = (from i in db.InventoryMain join p in db.PartCategory on i.PartCatogary equals p.Id where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary != 0 select new RecognizedPartsViewModel {
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
PartCato = i.PartCatogary,
ABCD = i.A_B_C_D_Category
}).ToList();
List < UnRecoPartsViewModel > unReco = new List < UnRecoPartsViewModel > ();
var rUnData = (from i in db.InventoryMain where i.ReOrderQty != 0 && i.AvaQty <= i.ReOrderQty && i.PartCatogary == 0 select new UnRecoPartsViewModel {
PartNo = i.PartNo,
Description = i.PartDescription,
Model = i.PartModel,
AvaQty = i.AvaQty,
ReOrderQty = i.ReOrderQty,
ABCD = i.A_B_C_D_Category
}).ToList();
所以我需要知道我必须在同一个 html 视图中显示这些数据。那么如何在 html 视图中将这两个视图模型称为单独的列表?
您需要创建另一个可以获取两种类型数据的模型,即 1 List < RecognizedPartsViewModel >
和 1 List < UnRecoPartsViewModel >
,您可以将此模型传递给您的视图并访问您的每个列表使用此模型
如果您的数据模型具有问题中描述的结构,您可以在两种情况下使用 class:
public class PartsViewModel
{
public string PartNo { get; set; }
public string Description { get; set; }
public string Model { get; set; }
public int AvaQty { get; set; }
public int ReOrderQty { get; set; }
public string PartCato { get; set; } // Used only in the a table for RecognizedParts
public string ABCD { get; set; }
}
然后创建一个新的 class 以包含每个类别的分隔列表:
public class PartsDataModel
{
public List<PartsViewModel> RecognizedParts { get; set; }
public List<PartsViewModel> UnRecognizedParts { get; set; }
}
然后:
public ActionResult Index()
{
// ... copy your previous code here, but use `PartsDataModel` class
// instead of `RecognizedPartsViewModel `UnRecoPartsViewModel`.
var model = new PartsDataModel()
{
RecognizedParts = rData,
UnRecognizedParts = rUnData
}
// Create the view
return View(model);
}