1个模型在一个视图中拆分为3个表,这可能吗?

1 model split into 3 tables in one view, is it possible?

我有 1 个模型和数据库,有 3 个不同的存储过程,它们将一个主要 table 的内容分类为 3 个较小的子部分,将它们输出为单独的列表。我为 3 个存储过程的结果创建了一个包含 3 列的视图。是否可以将 3 个不同的存储过程添加到同一个视图中?请参阅下图了解我的意思。

存储过程都是非常基本的 SELECT 语句,有点像根据满足的条件将 table 分为 3 个不同的子部分。

我的控制器代码现在没有到达第二个和第三个视图,因为它只能 return 一次。可以在这里写点什么吗?

 public ActionResult Index()
        {
            using (var context = new ApplicationDbContext())
            {
                var none = context.Applications.SqlQuery("dbo.metNoCriteria").ToList();
                var basic = context.Applications.SqlQuery("dbo.metBasicCriteria").ToList();
                var more = context.Applications.SqlQuery("dbo.metMoreCriteria").ToList();
                return View(basic);
                
            }
            // View(db.Applications.ToList());
        }

换句话说 我试图将一个数据库的内容拆分为 3 个部分,并在一个视图中将它们输出为三个不同的 table,如见上文。 (图像不正确,因为 table 包含相同的内容;他们不会这样做)。他们三个都有相同的多边、双边和名称列,但下面的内容对于 3 种颜色会有所不同。

希望有人知道是否有可能做到这一点!

您必须创建一个 viewModel class:


public class TablesViewModel
{
public List<NoneClass> NoneClassList {get; set;}
public List<BaseClass> BaseClassList {get; set;}
public List<MoreClass> MoreClassList {get; set;}
}

行动:


public ActionResult Index()
  {
        var model=new TablesViewModel();

            using (var context = new ApplicationDbContext())
            {
  model.NoneClassList = context.Applications.SqlQuery("dbo.metNoCriteria").ToList();
model.BaseClassList = context.Applications.SqlQuery("dbo.metBasicCriteria").ToList();
 model.MoreClassList = context.Applications.SqlQuery("dbo.metMoreCriteria").ToList();
 
            }
            return View(model);
  }

在视图内部使用每个列表作为 table 来源。