8

IISのMVCWebサイトの下に、「ファイル」という仮想ディレクトリがあります。このディレクトリは、私のViewsディレクトリと同じレベルにあります。MVCアプリからFilesディレクトリの下のファイルにファイルをリンクすると、次のエラーが発生します。

パス'/Files/Images/1c7f7eb8-5d66-4bca-a73a-4ba6340a7805.JPG'のコントローラーが見つからないか、IControllerを実装していません。

私のFilesVDはコントローラーだと思います。MVCに干渉することなく、通常のVDのようにファイルにアクセスするにはどうすればよいですか?

ありがとう。

4

3 に答える 3

23

ルートを登録するときは、次の無視ルールを追加してみてください。

public static void RegisterRoutes(RouteCollection routes)
            {
                /* Ignore static content, see
                 http://weblogs.asp.net/rashid/archive/2009/04/03/asp-net-mvc-best-practices-part-2.aspx 
               */
                routes.RouteExistingFiles = false;
                routes.IgnoreRoute("Content/{*pathInfo}");
                routes.IgnoreRoute("Scripts/{*pathInfo}");
                routes.IgnoreRoute("Styles/{*pathInfo}");
                routes.IgnoreRoute("{*favicon}",
                    new { favicon = @"(.*/)?favicon.([iI][cC][oO]|[gG][iI][fF])(/.*)?" });

                //Ignore handlers and resources
                routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

               // your routes go here
            }
于 2010-04-28T14:43:42.680 に答える
2

ASP.Netは最初にディレクトリを探し、次にコントローラーとの照合を試みるため、実行していることが機能するはずです。その名前のファイルが存在し、アクセス可能であると確信していますか?

于 2010-04-28T14:40:00.440 に答える
1

.NET MVCが要求を無視することを認識できるように、Global.asaxファイルroutes.Ignore() の静的ルートへの呼び出しを追加する必要があると思います。

RouteCollection.Ignore(String)-MSDN

于 2010-04-28T14:31:25.477 に答える