Технически, ваша структура классов для этого не очень хорошо сформирована, поэтому я бы порекомендовал вам разбить ваши классы, чтобы вы могли показать данные желаемым способом, например:
public class Company
{
public int ID { get; set; }
public string CompName { get; set; }
public List<Contractor> Contractors { get; set; }
// Your Other Properties
}
public class Contractor
{
public int ID { get; set; }
public string ContractorName { get; set; }
// Your Other Properties
}
Таким образом, JSON, который вы вернете, будет выглядеть следующим образом:
[
{
"ID": 13,
"CompName": "MULETA PLC ",
"Contractors": [
{
"ID": 1,
"ContractorName" : "ENGINEERING",
},
{
"ID": 2,
"ContractorName" : "SUNS CONST."
}
]
},
{
"ID": 14,
"CompName": "Hello, World!",
"Contractors": [
{
"ID": 3,
"ContractorName" : "Hello"
},
{
"ID": 4,
"ContractorName" : "World"
}
]
}
]
После этого вы можете легко отобразить список, как вы хотели, см .:
<ul id="list" style="line-height: 0.01;">
@foreach (var item in compInfo)
{
<li data-id="@item.ID">
@item.CompanyName
<ul>
@foreach (var contractor in item.Contractors)
{
<li data-expanded="true" data-id="@contractor.ID">@contractor.ContractorName</li>
}
</ul>
</li>
}
</ul>