古い学校のコードを ASP.NET MVC に変換していますが、URL 形式が原因で問題が発生しました。次の例のように、特別な URL パスの前にチルダを付けて、サムネイルの幅、高さなどを URL で指定します。
http://www.mysite.com/photo/~200x400/crop/some_photo.jpg
現時点では、これは IIS のカスタム 404 ハンドラーによって解決されていますが/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 年から公式にサポートされており、Web にはおそらくこの URL への参照があふれています。ある種の制約付きワイルドカードをルートに追加できますか?