【问题标题】:Passing a list to a view by Entity Framework Core通过 Entity Framework Core 将列表传递给视图
【发布时间】: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


【解决方案1】:

考虑更改:

public IActionResult Products()
{
  return View(_IRepository.GetAllProductsAsync());
}

收件人:

public async Task<IActionResult> Products()
{
  return View(await _IRepository.GetAllProductsAsync());
}

【讨论】:

    猜你喜欢
    • 2020-03-05
    • 1970-01-01
    • 2011-03-20
    • 2018-04-24
    • 2020-10-09
    • 2012-06-25
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    相关资源
    最近更新 更多