Asp.Net MVC4 でビルドされたプロトタイプ アプリケーションを受け取りました。現在、NInject、ServiceLocator などを使用して、デフォルトのコントローラ ファクトリをカスタム ファクトリに置き換えています。
問題は、デフォルトのコントローラ ファクトリを置き換えることによって、JS ファイルへのリクエストが、コントローラとアクションに対する正当なリクエストであるかのように扱われることです。
したがって、Visual Studio によって作成された既定のテンプレートを見ると、ルート構成は次のようになります。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
それを見た後、私は自問しています:「/Scripts/jquery.js」へのリクエストがAsp.Net MVCによって解釈されないのはなぜですか? つまり、「スクリプト」がコントローラーで、「jquery.js」がアクションであると見なされないのはなぜですか?
コントローラ ファクトリ オーバーライドを無効にするとプロジェクトが機能するため、デフォルト ファクトリがその種のチェックを担当しているとしか思えません。そして、それは「/Scripts/jquery.js」が実際にコントローラーファクトリーに渡されることを意味しますが、これは私が本当に知りませんでした。
誰かがそれに光を当てることができますか?
このような問題を回避するためにコントローラ ファクトリをオーバーライドする場合、どのような処理を行う必要がありますか?