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);
}