型のコレクション自体を持つ匿名型のコレクションを Razor ビュー エンジンに渡そうとしています。
次の拡張機能を使用して、動的オブジェクトをビューに渡しています。
public static ExpandoObject ToExpando(this object anonymousObject)
{
IDictionary<string, object> anonymousDictionary = new RouteValueDictionary(anonymousObject);
IDictionary<string, object> expando = new ExpandoObject();
foreach (var item in anonymousDictionary)
expando.Add(item);
return (ExpandoObject)expando;
}
次のような単純な匿名オブジェクトで動作します。
mylinqstatement.Select(x => new { foo = x.f, bar = x.b }.ToExpando());
ただし、次のようなより複雑な型を渡すことに失敗しています。
mylinqstatement.GroupBy(y => y.foo).Select(x =>
new { foo = x.key, bar = x.Select(y => y.b) }.ToExpando());
ラダー ステートメントを書き直そうと何度か試みましたが (最も単純なものを示しました)、必要なプロパティ (yb の値) にビュー内でアクセスすることはできません。
どんな助けでも大歓迎です。