2012-07-20 20 views
5

私のコントローラはデフォルトのコンストラクタを持たないコントローラから継承されています。T4MVCベースコントローラにデフォルトのコンストラクタがありません

protected MyControllerController(Dummy d) { } 

どのように私はこの問題を解決することができますT4MVCは、ベースコントローラは、デフォルトコンストラクタを持っていると仮定し、次のコンストラクタを生成しますか?十分に興味深いことに、thisページによれば、バージョン2.4.00は「ベースコントローラーにデフォルトのctorがないときに修正された問題」です。私もfoundこれは質問ですが、私のベースコントローラは一般的ではありません。

+0

バージョン2.10.0で問題を再現することができました... T4MVC問題追跡ツールに問題を投稿し、リンクされたSO問題の回避策を使用するまで修正する必要があります。つまり、基本クラスにデフォルトのコンストラクタを追加します。 – nemesv

+1

私は出ていますが、今週末に向けてこれを調べようとします。 –

答えて

6

ベースコントローラーを抽象化する場合、これは正常に動作します。私はコントローラとして直接使用する必要はないと思いますか?そうであれば、非抽象クラス以外の派生クラスを作成して、それを処理できます。

+0

ええ、それを回避するにはいくつかの方法がありますが、私はシナリオに取り組んでいます(私はここで説明しました:http://stackoverflow.com/questions/11576606/asp-net-mvc-reuse-of-controllermodelviewroutes)かなり妥当に見えます。 T4MVCがハックなしでそれをサポートしていればいいのではないでしょうか? – SiberianGuy

+0

ここにいません。ベースタイプを直接使用しているかどうかそうでない場合は、抽象としてマークすることはハックではありません、それは正しいことです。 –

+0

私はそれを直接使用しています。私はちょうどそれに派生したコントローラからいくつかの特定の依存関係を渡す。 – SiberianGuy

関連する問題