我正在使用 mvc 并将名为 DataModel 的类作为我的模型传递给视图:
public class DataModel
{
public List<ServerStats> statsPerMonthPerServer { get; set; }
}
这是 ServerStats 类:
public class ServerStats
{
public string ServerID { get; set; }
public List<ColumnData> ServerMonthStats { get; set; }
}
这是 ColumnData 类:
public class ColumnData
{
public string Date { get; set; }
public double Sum { get; set; }
}
我已经设法构建了我的 ModelData 对象,如果我对其进行调试,它看起来就像我想要的信息在其中,但我无法设法从视图中打印出来。这是我试图做的:
看法:
@model IEnumerable<WebApp.Models.DataModel>
@foreach (var server in Model)
{
foreach (var month in server.statsPerMonthPerServer)
{
@month.ServerID
foreach (var column in month.ServerMonthStats)
{
@column.Date <br />
@column.Sum <br />
}
}
}
以及我构建 DataModel 并将其发送到视图的控制器:
DataModel dm = new DataModel();
dm.statsPerMonthPerServer = new List<ServerStats>();
foreach (var row in serverStats)
{
ServerStats ss = new ServerStats();
ss.ServerID = row.ServerID;
ss.ServerMonthStats = new List<ColumnData>();
ColumnData cd = new ColumnData();
cd.Date = row.Year.ToString() + "-" + row.Month.ToString();
cd.Sum = row.ServerSum;
ss.ServerMonthStats.Add(cd);
dm.statsPerMonthPerServer.Add(ss);
}
return View(dm);
我得到的错误:传递到字典中的模型项是“WebApp.Models.DataModel”类型的,但是这个字典需要一个“System.Collections.Generic.IEnumerable`1[WebApp.Models.DataModel]”类型的模型项.
我正在使用列表,但它说这是一本字典,但我认为它正在谈论我的列表。我已经阅读了一些有关 IEnumerable 接口的信息。我必须在除 DataModel 之外的所有类上实现它吗?我认为视图顶部的模型声明可以解决这个问题?任何帮助将不胜感激!