使用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