ルート定義は次のとおりです。
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{*data}",
defaults: new { data= RouteParameter.Optional }
);
今、製品コントローラーで、次のように定義されたアクションがあります。
public string Get(string data="")
{
return "value";
}
http-get
次のURLでテストします
api/product/
api/product/apple
両方とも働いています
しかし、このURLを使用すると
api/product/?p=5
それは例外をスローします
No action was found on the `controller` 'product' that matches the request.
問題を解決するために、このような別のアクションを定義できることを理解しています
public string Get(int p,string data="")
{
return "value";
}
しかし、それは私にとってはうまくいきません。url
パラメーターの名前またはパラメーターの値のいずれかのパラメーターが予測できないためです。
だから、私の質問は
http-get
URL で使用されているクエリ文字列の種類に関係なく、このコントローラーに送信されるすべての要求を処理する単一のアクションを定義する方法はありますか?