[英]Passing a list to a view by Entity Framework Core
I want to pass a list of products to my view. 我想将产品清单传递给我。 but I Don't know what I'm missing here.
但我不知道我在这里想念的是什么。 When I run it i face with this exception
当我运行它时,我会遇到这个异常
InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'System.Runtime.CompilerServices.AsyncTaskMethodBuilder1+AsyncStateMachineBox1[System.Collections.Generic.IList1[DataLayers.Models.mymodel],DataLayers.Services.Repository+d__2]', but this ViewDataDictionary instance requires a model item of type 'System.Collections.Generic.IEnumerable`1[DataLayers.Models.mymodel]'.
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]”的模型项。
This is my IRepository 这是我的IRepository
Task<IList<mymodel>> GetAllProductsAsync();
And here is my Repository (Context injection is omitted for the sake of simplicity ) 这是我的存储库 (为简单起见,省略了上下文注入)
public async Task<IList<mymodel>> GetAllProductsAsync()
{
return await _context.mymodel.ToListAsync();
}
This is MyController 这是MyController
private readonly IRepository _IRepository;
public MyController(IRepository ThisController)
{
_IRepository = ThisController;
}
public IActionResult Products()
{
return View(_IRepository.GetAllProductsAsync());
}
And finally Here is myView 最后是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>
Consider change from: 考虑以下方面的变化:
public IActionResult Products()
{
return View(_IRepository.GetAllProductsAsync());
}
To: 至:
public async Task<IActionResult> Products()
{
return View(await _IRepository.GetAllProductsAsync());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.