【发布时间】:2019-04-28 23:51:04
【问题描述】:
我正在尝试将 ViewResult 中的可枚举客户对象发送到客户的索引视图。但我无法在视图页面上将 foreach 与 Model 一起使用。 与模型相关的错误说 -
“foreach 语句无法对'Customers' 类型的变量进行操作,因为'Customers' 不包含'GetEnumerator' 的公共实例定义”
我尝试用数组切换代码,但问题仍然存在
public class Customers
{
public int Id { get; set; }
public string Name { get; set; }
}
//Customer Controller
public class CustomersController : Controller
{
public IActionResult Index()
{
var customers = GetCustomers();
return View(customers));
}
public IActionResult Details(int id)
{
var customer = GetCustomers().SingleOrDefault(c => c.Id == id);
return View(customer);
}
private IEnumerable<Customers> GetCustomers()
{
var customer = new List<Customers>
{
new Customers { Id = 1, Name = "John Smith"},
new Customers { Id = 2, Name = "Mary Williams"}
};
return customer;
}
}
//View page Index
@foreach (var customer in Model)
{
<tr>
<td><a asp-area="" asp-controller="Customers" asp-action="Details">@customer.Name</a></td>
</tr>
}
The error displayed Under Model 当 foreach 语句执行时,它应该相应地输出客户的姓名
【问题讨论】:
-
SingleOrDefault不会产生集合,它是单个Customers。如果您想要一个集合,请改用Where,即使只有一项。
标签: c# asp.net-core asp.net-core-mvc