2

Uri PathExtensionMappingをWebAPIで機能させようとしています。ルートを正しく設定しました:

routes.MapHttpRoute(
                       name: "Api with extension",
                       routeTemplate: "api/{controller}.{ext}/{id}",
                       defaults: new { id = RouteParameter.Optional, ext = RouteParameter.Optional }
                   );

routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

また、デフォルトルート(例:/api/products.json/123 )でも問題なく動作しますが、他の方法(例:/api/products.json?categoryid=5)ではエラーメッセージが表示されます。

"No action was found on the controller 'Products' that matches the request."

すべてのルーティング作業は、拡張子なしで検出されます(例:/ api / products/123および/api/ products?categoryid = 5 ) 。誰か私が欠けているアイデアはありますか?

4

2 に答える 2