J'essaie de créer une maquette à l'aide de WebMatrix en utilisant WebPages sous le capot. J'ai assigné un tableau implicitement tapé des objets anonymes à l'une des clés PageData, mais je reçois l'erreur suivante lorsque je tente d'utiliser des méthodes LINQ sur la collection:Erreur lors de l'utilisation de LINQ avec des classes anonymes et des tableaux typés implicitement dans des pages Web ASP.NET
CS1977: Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type
Voici quelques exemples de code:
@{
PageData["Vals"] = new [] {
new { ID=1, Quantity=5 },
new { ID=2, Quantity=3 }
};
var sum = PageData["Vals"].Sum(x => x.Quantity);
}
Si je stocke d'abord le tableau dans un objet normal, je peux très bien utiliser les méthodes LINQ. Il semble avoir un problème quand il s'agit de PageData en tant qu'objet dynamique - mais je n'arrive pas vraiment à comprendre la sauce secrète pour la contraindre à revenir au type initial.
Je n'ai jamais entendu un bon argument pour ne pas utiliser de modèles fortement typés. (ce qui ne réglerait pas le problème de manière incidente) –
@Kirk Cela aura un vrai modèle - j'ai posté ce message plus en espérant aider quelqu'un d'autre sur la route qui rencontre le même message d'erreur. Une réponse constructive avec un exemple de code n'utilisant pas PageData serait probablement plus utile. – Goyuix