5

MVC で数か月働いた後、以前に作成した WebForms 3.5 アプリケーションに戻り、学んだことでできることを修正しようとしています。

これの一部は、信じられないほど素晴らしい「部分的なビューを持つ強く型付けされたモデル」の概念です。カスタムの「ListTemplate」コントロールを継承することで、その GetModel() メソッドを使用して、次のようなものを取得できます。

<% List<Models.CaseStudy> model = GetModel<Models.CaseStudy>(); %>

次に、モデルに対して foreach を実行すると、すべてが満足のいくものになります。ただし、グループ化を行いたかったので、次への参照を追加しました。

<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Linq.Expressions" %>

次に、理想的とは言えない構文で、これを試しました。

<% IEnumerable<IGrouping<string, Models.CaseStudy>> model = GetModel<Models.CaseStudy>().GroupBy(e => e.Client.Name); %>

しかし、いいえ!「コンパイラ エラー メッセージ: CS1525: 無効な式の用語 '>'」 - ラムダに問題があるようです。GroupBy() を foreach パラメーターに入れても機能しません。

ASCX ファイル内でラムダを動作させる方法はありますか?

4

1 に答える 1

5

エラー メッセージに基づいて、私の最初の直感は、C# 2.0 コンパイラを使用していると言うことです。

戻り値の型が何であるかわかりませんGetModel<T>。ただし、空のメソッドであっても、実際のラムダ式は有効な構文構造です。解析エラーではなく、オーバーロード解決エラーを生成する必要があります。

ただし、これは C# 2.0 コンパイラには当てはまりません。これは無効な構文構造であり、そのエラー メッセージが生成されます。

正しいバージョンの C# コンパイラを使用していることを確認できますか?

于 2009-07-02T12:16:22.723 に答える