2009-07-02 3 views
5

MVCで数ヶ月働いた後、私は以前に書かれたWebForms 3.5アプリケーションに戻ってきました。私が学んだことでできることを修正しようとしています。WebFormsでのLinq LambaのサポートASCX

これは、部分的な見方がある強く型付けされたモデルです。これは信じられないほど素晴らしいものです。私のカスタム「ListTemplate」コントロールを継承することで、私は、このに似た何かを得るために、そのGetModel()メソッドを使用することができます。

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

私は、モデル上のforeachを実行することができ、すべてが幸せです。少しより少なくより理想的な構文で、

次に、これを試してみました:しかし、私はへの参照を追加したように、グループ化をやってみたかった

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

をしかしなし! "コンパイラエラーメッセージ:CS1525:無効な式の用語 '>'" - 障害時のラムダのようです。私はGroupBy()をforeachパラメータのどちらかに入れてもうまくいきません。

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

答えて

5

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

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

しかし、これはC#2.0コンパイラのケースではありません。これは無効な構文構造であり、そのエラーメッセージを生成します。

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

+0

ああ、そうです:バージョン情報:Microsoft .NET Frameworkバージョン:2.0.50727.3053; ASP.NETバージョン:2.0.50727.3053。どうすればv3.5を指定できますか?また、ASCXファイルが他のサイトと異なる処理をする理由(Webプロジェクトのプロパティペインでターゲットフレームワークとして設定されたv3.5は間違いなくv3.5ですか) – tags2k

+0

脇に、GetModel の戻り値の型はList tags2k

+1

です。今すぐソートされました。 web.configファイルを比較するための新しい3.5プロジェクトを設定し、何らかの理由でsystem.codedom>コンパイラセクションが他のプロジェクトから空になっていました。それがどれほど長くなったのだろうか? – tags2k

関連する問題