2009-04-02 11 views
3

私はFubu MVCの "one model in one out"アイデアを本当に好きです。コントローラーは次のようになります。調整asp.net mvc

public class MyController 
    { 
     public OutputModel MyAction(InputModel inputModel) 
     { 
      //.. 
     } 
    } 

サービスロケーターは、自動的にコンストラクターに必要なすべての依存関係を記入します。

これにより、コントローラのテストが非常に簡単になります。

私の質問は次のとおりです。コントローラでこのシンプルさを可能にするためにasp.net mvcを調整する方法はどうですか?

答えて

2

あなたが探しているのは、ControllerActionInvokerです。あなたは自分自身を実装し、ASP.NET MVCの多くのパイプライン処理をオーバーライド/テイクオーバーする必要があります。

参考のために、やってControllerActionInvokersにジョナサン・カーターの2部構成の記事をチェックアウト: http://lostintangent.com/2008/07/03/aspnet-mvc-controlleractioninvoker-part-1/

。また

http://lostintangent.com/2008/07/07/aspnet-mvc-controlleractioninvoker-part-2/

、OxiteチームはOxiteの第二のリリースでこれをしなかった、あなたここでその出所を確認することができます:

http://oxite.codeplex.com/SourceControl/changeset/view/30544

ControllerActionInvoker実装へのリンクは次のとおりです。 http://oxite.codeplex.com/SourceControl/changeset/view/30544#442766

0

実際にASP.NET MVCの内部を深く掘り下げたことはありませんが、カスタムModelBinderとActionResultがその仕事をすると思います。