0

次のような ApiController があります。

SearchController : ApiController {
  public Book Get(int booksn=-1, string author="")
  {
    /* search for books matching the parameters */
  }
}

すべてのパラメータにはデフォルト値があり、空の検索リクエストはすべてを返します。

今私の問題は、リクエストに他のパラメーターが含まれている場合(APIユーザーからのタイプミスなど)、それでもこの関数にルーティングされることです:

GET /search?booksn=3&hello=world

根本的な問題は、パラメーターが間違った型で送信された場合、同じ方法でルーティングされ、メソッドでパラメーター値を取得できないため、エラー応答を送信することさえできないことです:

GET /search?booksn=helloWorld

これを防ぐ方法はありますか?間違った型を防止するか、未定義のパラメーターをすべて防止しますか? (オブジェクトと [FromUri] 属性でも試しましたが、同じ問題があります)

編集:VS 2012 と .NET Framework 4 を使用しています

4

2 に答える 2