[C# / ASP.NET] Deel subdocument MongoDB tonen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Timons106
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:07
Ik ben bezig met een school project waar we MongoDB voor gebruiken.
Nu loop ik alleen tegen een klein probleem aan waar ik eigenlijk al veel te lang mee bezig ben, vandaar dat ik het hier vraag.

Ik heb een subdocument name dat bestaat uit firstname en lastname, nu wil ik alleen de voornaam laten zien in een tabel met het volgende stukje code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
@foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.name["firstname"])
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.profile_id }) |
                @Html.ActionLink("Details", "Details", new { id = item.profile_id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.profile_id })
            </td>
        </tr>
    }


Als ik dit doe krijg ik de volgende foutmelding:
An exception of type 'System.Reflection.TargetInvocationException' occurred in System.dll but was not handled in user code

Additional information: Property accessor 'AsBoolean' on object 'MongoDB.Bson.BsonString' threw the following exception:'Unable to cast object of type 'MongoDB.Bson.BsonString' to type 'MongoDB.Bson.BsonBoolean'.'

En als ik alleen @Html.DisplayFor(modelItem => item.name) doe krijg ik bijvoorbeeld lastname=achternaamfirstname=voornaam te zien.

Het is waarschijnlijk echt heel simpel, dus ik schaam me wel een beetje voor deze vraag, maar wie kan mij helpen?

Acties:
  • 0 Henk 'm!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 11-06 14:10

HMS

Je zit dus rechtstreeks met een BsonDocument uit de MongoDB client te werken? Weet je zeker dat je niet beter een generic MongoCollection<hier je type> kunt gebruiken?

Maar goed, met een beetje debuggen had je het ook wel kunnen ontdekken. Probeer item.GetElement("firstname") eens. Hoewel DisplayFor dat waarschijnlijk niet heel fijn vind.

Acties:
  • 0 Henk 'm!

  • Timons106
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:07
Ik werk niet direct met een BsonDocument uit MongoDB, dus dat gaat niet werken.

Acties:
  • 0 Henk 'm!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 11-06 14:10

HMS

In ieder geval, ergens wordt een aanroep gedaan naar de AsBoolean variable terwijl het een String is. Daar komt de exception vandaan. Die AsBoolean zit op de BsonDocument class. Wat is je Model in dit geval?

edit:

Zou ook kunnen dat er een conversie fout gaat in MongoDB. Dat de deserializer een Boolean verwacht maar dat het in werkelijkheid een String is.

[ Voor 27% gewijzigd door HMS op 02-11-2013 00:17 ]