加入后将不同类型返回到视图(ASP.NET MVC2 C#)

Posted

技术标签:

【中文标题】加入后将不同类型返回到视图(ASP.NET MVC2 C#)【英文标题】:Returning different types to a View after a join (ASP.NET MVC2 C#) 【发布时间】:2011-12-01 16:36:30 【问题描述】:

这是我的问题:我有一个 sql 查询,经过一系列连接后,它会从不同的表中获取一些数据。

这些数据属于不同的类别。如何从视图中访问这些数据?

即:

Classes:
-Customers (id,name)
-Books (id, author, title)
-BookCopies (id, idBook)
-Rentals(idCustomer, dateRental, dateRestituition)

我想要一个列表(BookCopies.id、Customer.id、Customers.name、Books.title、Rentals.dateRental、Rentals.dateRestituition)。

我该怎么做?

【问题讨论】:

您如何从联接中检索数据?只需使用视图所需的属性创建一个 View Model 类,然后从数据库中填充。 【参考方案1】:

如果我正确理解您的问题,您正在寻找一个包含 SQL 视图信息的类。如果是这种情况,那么您可以创建一个包含各种字段的新类:

public class RentalDetails

    public int BookId  get; set; 
    public string BookTitle  get; set; 

    public int CustomerId  get; set; 
    public string CustomerName  get; set; 

    public DateTime DateRental  get; set; 
    public DateTime DateRestitution  get; set; 

为了使填充此类更容易,您可能希望在 SQL 视图中提供别名。例如:

SELECT BookCopies.id As BookId ,
       Customer.id As CustomerId
etc... 

【讨论】:

以上是关于加入后将不同类型返回到视图(ASP.NET MVC2 C#)的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net MVC 中Controller返回值类型ActionResult

如何缓存将图像返回到asp.net mvc中的视图的操作方法的输出?

如何重定向到 $.AJAX 上的视图完成 - asp.net mvc 3

ASP.net MVC - 视图上的多个表单,每个调用不同的操作,但需要再次显示相同的视图

在 ASP.NET MVC 站点中返回视图时操作页面滚动

asp.net mvc,以 JSON 形式返回多个视图