IEnumerable’ не содержит определения для списка

#c# #asp.net-mvc #razor

#c# #asp.net-mvc #razor

Вопрос:

У меня есть эта viewmodel:

 public class ViewModel
{
    public int Id { get; set; }

    public List<Class1> OutputList { get; set; }
}
  

Я передаю его в частичное представление в контроллере:

 foreach (Class1 sc in linqQuery)
        {
            var viewModel = new ViewModel
            {
                Id = sc.Id,
                OutputList = sc.CodeExecutionResults.Where(s => s.Id == sc.Id).ToList()
            };

            model.Add(viewModel);
        }

return this.PartialView(model);
  

И затем, в представлении cshtml , я хочу отобразить это OutputList :

 @model IEnumerable<Models.ViewModel>

@foreach (var item in Model)
{
    <tr>
        <td style="width:30%">
           @foreach (var result in Model.OutputList)
           {
                <li> result.item </li>
           }
        </td>
    </tr>
}
  

Но я получаю этот вывод:

Ошибка CS1061 ‘IEnumerable’ не содержит определения для ‘OutputList’, и не удалось найти доступный метод расширения ‘OutputList’, принимающий первый аргумент типа ‘IEnumerable’ (вам не хватает директивы using или ссылки на сборку?)

Мой вопрос в том, как получить вложенный список в IEnumerable<ViewModel> в cshtml ?

Комментарии:

1. В вашем внутреннем foreach попробуйте изменить свой Model.OutputList на item.OutputList .

Ответ №1:

использовать item.OutputList

 @model IEnumerable<Models.ViewModel>

    @foreach (var item in Model)
    {
        <tr>
            <td style="width:30%">
               @foreach (var result in item.OutputList)
               {
                    <li> result.item </li>
               }
            </td>
        </tr>
    }