Передача списка в представление с помощью Entity Framework Core - PullRequest
0 голосов
/ 15 января 2019

Я хочу передать список продуктов на мой взгляд. но я не знаю, что мне здесь не хватает. Когда я запускаю его, я сталкиваюсь с этим исключением

InvalidOperationException: элемент модели, переданный в ViewDataDictionary, имеет тип 'System.Runtime.CompilerServices.AsyncTaskMethodBuilder1 + AsyncStateMachineBox1 [System.Collections.Generic.IList1 [DataLayers.Models.2]. , но для этого экземпляра ViewDataDictionary требуется элемент модели типа 'System.Collections.Generic.IEnumerable`1 [DataLayers.Models.mymodel]'.

Это мой IRepository

Task<IList<mymodel>> GetAllProductsAsync();

А вот и мой Хранилище (для простоты вставка контекста опущена)

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>

1 Ответ

0 голосов
/ 15 января 2019

Рассмотрим изменение с:

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

Кому:

public async Task<IActionResult> Products()
{
  return View(await _IRepository.GetAllProductsAsync());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...