Вы также можете рассмотреть:
- Написание модуля для обработки этих маршрутов изображения до того, как он попадет в маршрут (зарегистрирован в Web.Config)
- Напишите свой собственный обработчик маршрута специально для обработкиэти изображения.
И то, и другое позволит вам избавиться от необходимости писать в качестве контроллера, я думаю, что это чище.
Очень простой пример вашего собственного обработчика маршрута (из памяти) ...
Зарегистрируйтесь как обычный маршрут:
/* Register in routing */
routes.Add("MyImageHandler",
new Route("my-custom-url/{folder}/{filename}",
new ImageRouteHandler())
);
/* Your route handler */
public class ImageRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
string filename = requestContext.RouteData.Values["filename"] as string;
string folder = requestContext.RouteData.Values["folder"] as string;
string width = requestContext.HttpContext.Request.Params["w"] as string;
string height = requestContext.HttpContext.Request.Params["h"] as string;
// Look up the file and handle and return, etc...
}
}
Надеюсь, что это поможет.Множество способов расширения и достижения:)