I have a MVC controller called Downloads. http://mysite/Downloads
I also want to put a physical file in a physical folder called http://mysite/Downloads/MyFile.zip.<
Since .NET 3.5, you can route existing files:
public static void RegisterRoutes(RouteCollection routes) {
routes.RouteExistingFiles = true;
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);
}
So suppose we had a folder on the site root called Markets
containing an audio.mp3
file:
\Markets
\Markets\audio.mp3
Assuming the existence of a MarketsController
, if we made a request for Markets
, it'd be routed to Markets/Index
.
If we requested /Markets/audio.mp3
we'd get the mp3 file and if we requested Markets/AnythingElse
, normal routing would apply.