#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>
}