ASP.NET MVC 访问静态文件
When use asp.net MVC, we can add a special route to access the image files. the code like below:
1. in RouteConfig.cs file, add the code marked in yellow.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace Mediakind.Mds.YouTube.Server
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
//routes.RouteExistingFiles = false;
//routes.IgnoreRoute("Content/{*relpath}");
//routes.IgnoreRoute("Scripts/{*relpath}");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
//The route for access the static image file
routes.MapRoute(
name: "images",
url: "images/{*filename}",
defaults: new { controller = "Images", action = "Index" }
);
}
}
}
2. add another controller named "ImagesController", the file is "ImagesController.cs", and the code as :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Mvc;
namespace Mediakind.Mds.FakeServer.ExternalSearch
{
[Route]
public class ImagesController : Controller
{
public void Index(string filename)
{
Response.WriteFile(@"images/" + filename);
}
}
}
(End)