c# - 获取错误 foreach statement cannot operate on variables of type '' because '' does not contain a public definition for 'GetEnumerator'

标签 c# asp.net asp.net-mvc razor

我的 razor View 出现错误:

foreach statement cannot operate on variables of type 'Project.Model.ResultsClass' because 'Project.Model.ResultsClass' does not contain a public definition for 'GetEnumerator'

这是我的 foreach 以及我如何定义 Model

@model Project.Models.ResultsClass

@foreach (var item in Model) {
}

Controller 方法如下:

public ActionResult Results()
{
    var results = db.Data.SqlQuery("SELECT * FROM Results").ToList();
    ResultsClass result = new ResultsClass();

    result.previewID = results[0].id;
    result.dateSlot = results[0].dateSlot;
    result.timeSlot = results[0].timeSlot;
    result.startTime = results[0].startTime;
    result.dateCreated = results[0].dateCreated;

    return View(result);
}

这是我的类(class):

public class ResultsClass
{
    [DisplayName("Preview ID")]
    public int previewID { get; set; }
    [DisplayName("Date")]
    public string dateSlot { get; set; }
    [DisplayName("Time")]
    public string timeSlot { get; set; }
    [DisplayName("Start Time")]
    public DateTime startTime { get; set; }
    [DisplayName("Completed Time")]
    public DateTime dateCreated { get; set; }
}

我不明白我做错了什么?

最佳答案

您已经传递了 result,它是 ResultsClass 的一种类型,而不是 ResultsClass 的集合,然后尝试迭代它作为如果它是一个集合,那么您不能在 foreach 循环中使用它。所以为了能够使用 foreach在它上面,你必须把它做成一个集合。例如,如果您传递 results 而不是 result,您的 foreach 循环将起作用:

return View(results);

@model List<Project.Models.ResultsClass>

@foreach (var item in Model) {
}

关于c# - 获取错误 foreach statement cannot operate on variables of type '' because '' does not contain a public definition for 'GetEnumerator',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46202864/

相关文章:

c# - 在 Visual Studio 2017 中的 'web site' 中设置 C# 7

c# - 将经典 asp 应用程序移植到 .NET 时的语言选择

javascript - ASP.Net MVC,使用 javascript 提交表单

c# - 如何在 MVC 5 中下拉(多选)框

c# - NUnit:为什么 Assert.Throws<T> 没有捕获我的 ArgumentNullException?

c# - DLR 表达式中的 "code as data"在哪里?

c# - 有没有办法让编译器在非公共(public)类中缺少 XML 注释时发出警告?

Python 中多变量迭代的 C# 模拟?

jquery如何设置输入焦点在控件上

javascript - 如何将 C# 排序字典转换为相关的 javascript 键值对数组