asp.net web api を使用して Http サービスを構築しています。コントローラーに同じパラメーターを持つ 2 つの get メソッドがあります。両方のメソッドに一致するルートを定義する方法がわかりません。そのうちの 1 つだけを呼び出すことができます。もう1つは、コントローラーにアクションメソッドが見つからないというエラーが表示されます。ここに定義されたルートがあります
RouteTable.Routes.MapHttpRoute(
name: "default",
routeTemplate: "{controller}/{lang}",
defaults: new { lang = System.Web.Http.RouteParameter.Optional });
RouteTable.Routes.MapHttpRoute(
name: "details",
routeTemplate: "{controller}/{lang}/{action}/{id}");
およびコントローラーのメソッド:
public IQueryable<RecipeDTO> Get(string lang)
{
}
[HttpGet]
public RecipeDTO Details(string lang, int id)
{
}
[HttpGet]
public IQueryable<RecipeDTO> Random(string lang, int count)
{
}
メソッド Details と Random が同じパラメーターを持っていることがわかります。次の呼び出しを行うことができます。
controller-name/en (最初の get メソッドに一致)
controller-name/en/details/1 (details メソッドと一致します)
しかし、私がしようとすると:
コントローラー名/en/random/5
エラー no action method was found on the controller が表示されます。どうすれば修正できますか。
前もって感謝します