Web APIを使用して、次の2つのRestfulルートを2つの異なるアクションメソッドにリダイレクトする必要があります。
/ products/2- >製品ID2の情報を取得
/ products?someOptionalId=456- >すべての製品の情報を取得します。提供されている場合は、フィルターとしてsomeOptionalIdを使用します。
残念ながら、標準のルーティングとモデルバインディングスキームを使用すると、両方のURLが同じ製品コントローラーを指し、パラメーターとして1つのIDを持つため、同じintパラメーターを持つ2つのGetメソッドを作成するコンパイル時の問題、またはMVCが特定のアクションメソッドを選択できない
コンパイル時エラー
public IQueryable<Product> Get(int someOptionalIdQs)
{
}
public Product Get(int id)
{
}
実行時エラー(一部のOptionalIdQに文字列を使用してからintに変換するハックに注意してください)
public IQueryable<Product> Get(string someOptionalIdQs)
{
}
public Product Get(int id)
{
}
ルーティングを可能な限りクリーンに保ちたいので、ルーティング構成を変更せずに、理想的には修正を提案してください。ありがとう。