ASP MVC3循环遍历模型中没有的多个表

时间:2012-01-19 07:13:01

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

我是ASP MVC的新手,对于访问不属于@model的其他表中的数据有一个快速的问题。

示例:

现在我有两个表,我将它们称为table1和table2。

我将table1从控制器传递到视图,然后执行foreach循环以输出其内容。

在table1中我引用了table2,所以我可以访问table2中的字段。我想要的是循环遍历table2,但我无法做到这一点,因为我输出到我的模型的唯一数据是table1的内容,所以尽管我可以访问T2的数据我无法访问信息,例如它有多少行。

1 个答案:

答案 0 :(得分:1)

您可以(1)创建一个包含两个表的新“视图模型”(作为属性我们的东西),或者(2)在控制器中,您可以将第二个表放入ViewData字典中,在您的视图中检索它。

第二个选项更快更容易,但由于这是一个非常常见的问题,您最好习惯使用视图模型。

(1)这是一个示例视图模型:

public class MyViewModel {
    public SomeDataTable table1 {get; set;}
    public SomeDataTable table2 {get; set;}
}

(2)以下是如何使用ViewData字典:

// Controller code (store the table in ViewData):
SomeDataTable table2 = ...;
ViewData["table2"] = table2;

// View code (retrieve the table from ViewData):
<% var table2 = (SomeDataTable)ViewData["table2"]; %>