Это позволяет C# лучше поддерживать динамические языки, LINQ и дюжину других вещей. Выезд статья .
Scott Guthrie
Вы определенно можете повторно использовать тот же IHttpHandler
. Вам просто нужен новый IRouteHandler для сопоставления входящего запроса с правильным обработчиком:
public class ImageRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new YourImageHttphandler();
}
}
Добавьте в маршруты:
routes.Add("Images", new Route("images/{*file}", new ImageRouteHandler()));
Теперь любой запрос в / images
(например, ] /images/pic.jpg?width=320&height=240
) будет обрабатываться вашим существующим обработчиком. Очевидно, вы можете изменить шаблон маршрута, чтобы он соответствовал любому пути, который имеет смысл, как и в типичном маршруте MVC.
Вы можете сделать то же самое в mvc. Вы можете использовать httphandler, как и раньше, или создать действие, которое передает изображение с измененным размером.
Если бы это был я, я бы создал контроллер с методом изменения размера.