次のようなルートを持つ複数のコントローラーエンドポイントがあります。
[Route("api/myobjects/action1/action2/{objectIds}")]
それらはすべて、次のようなメソッド シグネチャを持っています (アクセス修飾子と戻り値の型は省略されています)。
Post([ModelBinder(typeof(CommaDelimitedArrayModelBinder))] int[] objectIds)
カスタム モデル バインダーを使用すると、次のようにエンドポイントに投稿できます。
../api/myobjects/action1/action2/1,2,3
これはうまくいきます!ただし、これらのメソッドはすべて、ヘルプ ページのドキュメント生成プロセスでは無視されます。
次のように modelbinder 属性を削除すると:
Post(int[] objectIds)
それでもうまくいきません。[FromUri]
パラメータに追加し{objectIds}
てルート属性から削除した場合にのみ機能します。
Post([FromUri] int[] objectIds)
しかし、これは次のように不要な uri を生成します。
../api/myobjects/action1/action2?objectIds[0]={objectIds[0]}&objectIds[1]={objectIds[1]}
ヘルプ ページのドキュメント プロセスでエンドポイントを認識するにはどうすればよいですか?