MVC .NET C# - 从多个表中获取视图

时间:2011-10-21 13:40:34

标签: c# asp.net-mvc

我有大约4张桌子,我喜欢收集信息,然后在视图中显示。根据我的理解,我需要在Model中创建一个类。在Controller中,我会调用该类。然后我会将该类的实例传递给视图。

我不确定如何以编程方式执行此操作。如果可以提供一些代码作为一个简单的例子。此外,我可能还需要编辑和删除我在视图上显示的记录。

2 个答案:

答案 0 :(得分:1)

您是否已启动并运行数据访问层,或者您打算如何从数据库中读取数据并将其发送到MVC应用程序?

您打算使用SQL Server和实体框架吗?

关于如何分层ASP.NET MVC应用程序的一般想法,请参阅我的答案:MVC3 and Entity Framework实际上答案不仅适用于一般架构MVC,而且下面有一些关于如何分割和保持分离的注释各种担忧。

答案 1 :(得分:1)

我们大多数人都在使用像nhibernate或实体框架这样的ORM来处理数据访问。它使所有内容都强类型化(如果映射工作正常;))并加快开发时间。

您应该做的是使用数据访问层获取表,并使用这些表填充包含信息的视图模型。类似的东西:

public ActionResult Details(int id)
{
    var user = _nhibernate.Get<User>(id);
    var company = _nhibernate.Get<Company>(user.CompanyId);
    var model = new DetailsModel{
       CompanyName = company.Name,
       UserName = user.Name
    };
    return View(model);
}

应该在WebProject \ Models文件夹中创建DetailsModel。我通常会为每个控制器创建一个子文件夹。

WebProject \模型\ ControllerName

public class DetailsModel
{
    public string CompanyName { get; set; }
    public string UserName { get; set; }
}