我是ASP MVC的新手,对于访问不属于@model的其他表中的数据有一个快速的问题。
示例:
现在我有两个表,我将它们称为table1和table2。
我将table1从控制器传递到视图,然后执行foreach循环以输出其内容。
在table1中我引用了table2,所以我可以访问table2中的字段。我想要的是循环遍历table2,但我无法做到这一点,因为我输出到我的模型的唯一数据是table1的内容,所以尽管我可以访问T2的数据我无法访问信息,例如它有多少行。
答案 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"]; %>