2012-02-07 9 views
0

私はカスタムコントローラファクトリを使用してコントローラインスタンスを作成しています。私の工場は、次のようになります。私はこのコードをデバッグしていた場合カスタムControllerFactoryを使用してasp.net mvcにContentControllerが登録されていません

public class UnityControllerFactory : DefaultControllerFactory 
{ 

    public override IController CreateController(RequestContext requestContext, string controllerName) 
    {    
     return IoC.Container.Resolve<BaseController>(controllerName + "Controller"); 
    } 

.... 

ContentController(コントローラ名==「コンテンツ」)を解決しようとしている、ウィッヒは私のユニティ・コンフィギュレーション・ファイルに登録されていないのは勿論です。私はContentControllerがSystem.Web.MVCのどこかに存在するかどうかを調べようとしましたが、見つけられませんでした。

誰かが私に説明することができます、なぜこの工場はこのコントローラを解決しようとしていますか?

おかげ

答えて

1

は、これは推測ですが、それはとき、それはいけない、MVCを経由して提供されているContentフォルダ内のあなたのウェブサイトからの静的コンテンツ(例えば、画像、CSSなど)のように聞こえます。

どのサーバーを使用していますか? IIS 7またはIIS Expressを使用している場合は、マネージパイプラインを使用する必要があります。したがって、これらのタイプの要求はMVCランタイムに到達しません。

requestContextインスタンスを詳しく調べて、このコントローラを要求しているものを正確に確認してください。

+0

解析requestContextのチップに感謝します。私は、ディスク上になかったcssファイルへの要求があることを発見しました。この参照をビューから削除するのを忘れてしまった。おそらく、IISがこのファイルを見つけられなかった場合、MVCを使用しようとしました。私はWindows 7 Ultimate上で動作しています。私は、デフォルトでインストールされているIISのバージョンがわからない。 – zosim

+1

@zosim - それは良い推測でした。 :)あなたはそれを整理してうれしいです。 – RPM1984

関連する問題