2010-04-28 8 views
8

Ich habe ein virtuelles Verzeichnis unter meiner MVC-Website in IIS namens "Dateien". Dieses Verzeichnis befindet sich auf derselben Ebene wie mein Sichtenverzeichnis. Wenn ich von meinem MVC-app in eine Datei unter meinen Dateien Verzeichnis in eine Datei verknüpfen, erhalte ich folgende Fehlermeldung:ASP.NET MVC denkt mein virtuelles Verzeichnis ist ein Controller

The controller for path '/Files/Images/1c7f7eb8-5d66-4bca-a73a-4ba6340a7805.JPG' was not found or does not implement IController.

Es denkt, dass meine Dateien VD ein Controller ist. Wie greife ich auf meine Dateien wie ein normales VD zu, ohne dass MVC interferiert?

Danke.

Antwort

2

ASP.Net sucht zuerst nach dem Verzeichnis und versucht dann, einen Controller zu finden, also sollte das, was du machst, funktionieren. Sind Sie sicher, dass die Datei mit diesem Namen existiert und zugänglich ist?

+1

Recycelte IIS, und alles funktioniert. Vielen Dank. – kmehta

1

Ich denke, Sie einen Anruf an routes.Ignore() eine statische Route in Ihrer Datei Global.asax hinzufügen müssen, so dass .NET MVC die Anforderung zu ignorieren weiß:

RouteCollection.Ignore(String) - MSDN

23

Versuchen Sie beim Registrieren von Routen die folgenden Ignorierregeln hinzuzufügen.

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 
      } 
+0

Einfach so. –

+0

Ich weiß, es ist old-school, aber ich habe auch 'routes.IgnoreRoute (" App_Themes/{* pathInfo} ");' hinzugefügt, das ein Problem gelöst hat, das ich hatte: http://stackoverflow.com/questions/21268124/getting- an-error-serving-images-from-app-themes-bei-Verwendung-Precompilation –