想要在mvc中显示来自两个不同sql表的数据

时间:2011-12-05 13:03:43

标签: c# asp.net-mvc asp.net-mvc-3

如何在视图中显示我的sql数据库中两个表的数据??

请帮忙。

  1. 表格是个人资料
  2. 表是公司
  3. 我想在视图中使用两个不同的表来显示数据库中的这些数据。!

    我在互联网上搜索过但我找不到任何可以解决我问题的方法。请帮忙。

    在我看来,我对一张桌子没有任何问题。

    public ActionResult Profiler()
    {
        using (var dc = new Models.DataDataContext()) // Opretter objekt af model(Databasen)
        {
            return View(dc.Profils.OrderByDescending(a => a.Nu).ToList()); // Returner en liste med tabellets indhold
        }
    }
    

    这给了我一张包含我数据库中数据的表格。但我也想要我的第二张桌子。

2 个答案:

答案 0 :(得分:1)

从两个表中加载信息并创建一个展平视图模型,其中包含两个表中的相关信息:

public ActionResult Details(int id)
{
    var profile = _profileRepos.Get(id);
    var company = _companyRepos.Get(profile.CompanyId);
    var model = new DetailsModel {
        CompanyName = company.Name,
        UserName = profile.FullName
    };
    return View(model);
}

答案 1 :(得分:1)

您希望实现的目标称为“视图模型”,因为您发送到视图的模型与数据库中的模型不同。通常,您会发现可能需要为与数据库不完全匹配的UI创建视图。

jgauffin显示了一个“DetailsModel”,它结合了两个数据库实体。这就像创建一个类并给它两个属性CompanyName和Username一样简单。他的代码缺少的是“DetailsModel”类的代码。您可以创建一个具有所需属性的单个实体,而不是传递两个实体。

Surjit还有一种方法可以通过使用元组而无需使用单独的View Model类。

您需要修改视图以接受元组或新的视图模型。