Я конвертирую код старой школы в ASP.NET MVC и столкнулся с проблемой, вызванной нашими форматами URL. Мы задаем ширину, высоту и т. Д. В URL-адресе, добавляя к тильде префикс специального URL-адреса, как в следующем примере:
http://www.mysite.com/photo/~200x400/crop/some_photo.jpg
В настоящее время это решается с помощью специального обработчика 404 в IIS, но теперь я хочу заменить /photo/
на ASP.NET и использовать System.Web.Routing
для извлечения ширины, высоты и т. Д. Из входящего URL .
Проблема в том, что я не могу сделать это:
routes.MapRoute(
"ThumbnailWithFullFilename",
"~{width}x{height}/{fileNameWithoutExtension}.{extension}",
new { controller = "Photo", action = "Thumbnail" }
);
, поскольку System.Web.Routing не позволяет маршруту начинаться с символа тильды (~).
Изменение формата URL не возможно ... мы публично поддерживали этот формат URL с 2000 года, и в Интернете, вероятно, существует множество ссылок на него. Могу ли я добавить какой-нибудь ограниченный шаблон к маршруту?