【发布时间】:2019-01-15 09:11:18
【问题描述】:
我想将产品列表传递给我的视图。但我不知道我在这里错过了什么。当我运行它时,我遇到了这个异常
InvalidOperationException:传递到 ViewDataDictionary 的模型项的类型为“System.Runtime.CompilerServices.AsyncTaskMethodBuilder1+AsyncStateMachineBox1[System.Collections.Generic.IList1[DataLayers.Models.mymodel],DataLayers.Services.Repository+d__2]” ,但此 ViewDataDictionary 实例需要“System.Collections.Generic.IEnumerable`1[DataLayers.Models.mymodel]”类型的模型项。
这是我的 IRepository
Task<IList<mymodel>> GetAllProductsAsync();
这是我的Repository(为简单起见,省略了上下文注入)
public async Task<IList<mymodel>> GetAllProductsAsync()
{
return await _context.mymodel.ToListAsync();
}
这是 MyController
private readonly IRepository _IRepository;
public MyController(IRepository ThisController)
{
_IRepository = ThisController;
}
public IActionResult Products()
{
return View(_IRepository.GetAllProductsAsync());
}
最后是 myView
@model IEnumerable<DataLayers.Models.mymodel>
<table>
@foreach (var item in Model)
{
<tr class="table-row">
<td>
<img src="@Html.DisplayFor(m => item.DishImg)">
</td>
<td>
<p>@Html.DisplayFor(m => item.Productname)</p>
</td>
<td>
<p>@Html.DisplayFor(m => item.ProductInfo)</p>
</td>
<td>
<p>@Html.DisplayFor(m => item.ProductPrice)</p>
</td>
</tr>
}
</table>
【问题讨论】:
-
您是否尝试过像这样添加等待.. return View(await _IRepository....
标签: c# asp.net asp.net-core-mvc