使用razor在MVC5中循环浏览多个模型

使用razor在MVC5中循环浏览多个模型,razor,foreach,model,viewdata,asp.net-mvc-5,Razor,Foreach,Model,Viewdata,Asp.net Mvc 5,我正在设置从数据表填充的ViewData.Model。在我的视图中,我通过ViewData.Model循环显示数据。我正在尝试创建一个第二个ViewData.Model,并执行相同的操作。我如何做到这一点?我有第一个ViewData.Model的代码。如果您继续往下看,我尝试设置第二个ViewData.Model,但无法在视图中显示数据 具有工作视图数据的控制器。型号 var dataTable = new DataTable(); dataTable.Load(reader); ViewDat

我正在设置从数据表填充的
ViewData.Model
。在我的视图中,我通过
ViewData.Model
循环显示数据。我正在尝试创建一个第二个
ViewData.Model
,并执行相同的操作。我如何做到这一点?我有第一个ViewData.Model的代码。如果您继续往下看,我尝试设置第二个
ViewData.Model
,但无法在视图中显示数据

具有工作视图数据的控制器。型号

var dataTable = new DataTable();
dataTable.Load(reader);
ViewData.Model = dataTable.AsEnumerable();
使用工作视图数据查看。模型

@foreach (var item in ViewData.Model)
{
   @item["ACCT_ID"]
}
var dataTable = new DataTable();
dataTable.Load(dataReader);
ViewData["scheduledDate"] = dataTable.AsEnumerable();
带有第二视图数据的控制器。型号

@foreach (var item in ViewData.Model)
{
   @item["ACCT_ID"]
}
var dataTable = new DataTable();
dataTable.Load(dataReader);
ViewData["scheduledDate"] = dataTable.AsEnumerable();
使用第二个ViewData.Model进行视图拉取,但不起作用

@foreach (var item in ViewData["scheduledDate"] )
{
    @item["DATE_ID"]
}
更新-工作第二视图数据。模型 多亏了@teo van kot,我现在可以用我的第二个ViewData.Model显示内容了。以下是我认为有效的代码

 @foreach (var item in (IEnumerable<System.Data.DataRow>)ViewData["scheduledDate"])
    {
        @item["DATE_ID"]
    }
@foreach(IEnumerable)ViewData[“scheduledDate”]中的变量项)
{
@项目[“日期ID”]
}

如果您使用的是
ViewData
,您应该将模型转换为您的类型

像这样:

@foreach (var item in (IEnumerable<YourType>)ViewData["scheduledDate"] )
{
    @item["DATE_ID"]
}
@foreach(IEnumerable)ViewData[“scheduledDate”]中的变量项)
{
@项目[“日期ID”]
}

仅将
YourType
更改为您实际拥有的类型,这将起作用

如果使用
ViewData
,您应该将模型转换为您的类型

像这样:

@foreach (var item in (IEnumerable<YourType>)ViewData["scheduledDate"] )
{
    @item["DATE_ID"]
}
@foreach(IEnumerable)ViewData[“scheduledDate”]中的变量项)
{
@项目[“日期ID”]
}

只需将
YourType
更改为您实际拥有的类型,这将起作用

谢谢您的帖子。我想我越来越近了,但我不得不问一个愚蠢的问题。如何确定我实际拥有的类型?我尝试使用
IEnumerable
,但
@item[“DATE\u ID”]
抱怨说“无法从int转换字符串”。然后,我尝试了
IEnumerable
,但仍然没有成功errors@GRU119在你的控制器上设置断点,然后在手表上检查你到底有什么你就是那个人!原来我需要的类型是
System.Data.DataRow
谢谢你的帖子。我想我越来越近了,但我不得不问一个愚蠢的问题。如何确定我实际拥有的类型?我尝试使用
IEnumerable
,但
@item[“DATE\u ID”]
抱怨说“无法从int转换字符串”。然后,我尝试了
IEnumerable
,但仍然没有成功errors@GRU119在你的控制器上设置断点,然后在手表上检查你到底有什么你就是那个人!原来我需要的类型是
System.Data.DataRow