2010-11-25 20 views
0

Telerikのグリッドを使用しているasp.net MVCビューがあります。IQueryableをIQueryableにキャストする方法<T>私はTを事前に知らないのですか?

Html.Telerik.Grid(Model.Items) 

Model.ItemsのIQueryableですが、グリッドは、それを唱えるために私を必要とします。

例えば:

Html.Telerik.Grid((IQueryable<Product>)Model.Items) 

問題がある:私はモデルであるどのタイプか分かりません.Items(IQueryable<Product>IQueryable<Book>など)私は事前にTの種類が分からないとき、私は、IQueryable<T>へのIQueryableをキャストするにはどうすればよいtypeof(IQueryable<Product>)typeof(IQueryable<Book>) ...

:私も持っている何

は、以下の値を持つことができModel.ItemsType、あります?

答えて

0

ジェネリックタイプ実行時で決定していない、コンパイル時で知られる必要があります。

Model.Itemsの種類は何ですか? IEnumerable<T>から導出された場合は、System.Linqへの参照があるとすれば、AsQueryable()拡張メソッドを呼び出すことができます。

0

Tを事前に知らないときに、リフレクションを使用してGridメソッドを呼び出す必要があります。これは、コンパイル時に行う方法がないためです。 Model.Itemsが実際にIQueryableであれば、それをキャストする必要はありません。リフレクションベースの呼び出し中にパラメータとして渡してください(すべてのパラメータを型オブジェクトとしてとらえています)。

+0

ありがとう、Brad(私はあなたのブログを読んでいて、私はあなたのビデオを見ました:p&pシンポジウムとmvcを進めました)。私は解決策を見つけたので、後でここに掲載します(私は今忙しいです)。 –

関連する問題