ich eine Liste in einer anderen Liste erstellt habe, etwa so:ASP.NET-Schleife durch eine Liste innen und eine andere Schleife
var collectionsList = db.Data.ToList().Select(m => new { m.collection, m.hidden }).Where(model => model.hidden == false).Distinct();
foreach (var item in collectionsList)
{
ViewData.Add(new KeyValuePair<string, object>(item.collection, db.Data.ToList().Where(model => model.collection == item.collection)));
}
return View();
Nun meiner Meinung nach Ich versuche, durch Viewdata zu Schleife und dann die Schleife durch die Listen im Innern die Bildschirmtextsystem wie folgt:
var collectionsList = db.Data.ToList().Select(m => new { m.collection, m.hidden }).Where(model => model.hidden == false).Distinct();
foreach (var item in collectionsList)
{
ViewData.Add(new KeyValuePair<string, object>(item.collection, db.Data.ToList().Where(model => model.collection == item.collection)));
}
return View();
@foreach (var item in ViewData)
{
<h1 style="padding-bottom:50px;">item.Key</h1>
<table class="table">
<tr style="border-bottom: 1px solid #333;">
<th>
Design
</th>
<th>
Size (sq ft.)
</th>
<th style="text-align: right;">
Price
</th>
</tr>
@foreach(var x in item.Value as List<CP.Models.Pricing>)
{
<tr>
<td>
@Html.DisplayFor(modelItem => x.name)
</td>
<td>
@Html.DisplayFor(modelItem => x.sqft) sq ft.
</td>
<td style="text-align: right;">
[email protected](modelItem => x.basePrice)
</td>
</tr>
}
</table>
}
Aber ich habe diesen Fehler auf der zweiten Schleife: Object reference not set to an instance of an object.
Warum erhalte ich diesen Fehler? und wie kann ich es reparieren?
welche Zeile, speziell - so ziemlich eine der einfachsten Fehlermeldungen in .net zu; Jede Zeile, die den Fehler verursacht, hat ein Null-Objekt, auf das Sie eine Eigenschaft verweisen möchten. – Darren
diese Zeile .... @ foreach (var x in item.Value als Liste) –
user2551750
so entweder Wert ist null oder Element ist null. Sie brauchen auch nicht den 'as' Teil – Darren