この以下の質問の解決策を見つけようとすると:
デフォルト アクションの MVC Web Api ルートが機能しない
ほとんどの場合、「複数のアクションが見つかりました」という問題に遭遇します。ルーティング メカニズムがルートに一致する複数のアクションを検出すると、例外 500 がスローされます。
たとえば、ValuesController には次の 2 つのアクションがあります。
[HttpGet]
public IEnumerable<String> Active()
{
var result = new List<string> { "active1", "active2" };
return result;
}
public IEnumerable<string> Get()
{
return new[] { "value1", "value2" };
}
デフォルトルートと一致するもの:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
と
GET: /api/values
複数のアクションが見つかりましたというエラーが発生します。
私の質問: 指定されたアクションを選択することで、「複数のアクションが見つかりました」という例外を回避する方法 (最初に一致したアクションを選択しても問題ありません)。
更新 1: tugberk のコメントからの更新、ご指摘ありがとうございます。
更新 2:マイクのコメントからの更新です。質問があまり正しくないようです。そのため、ルーティングの制約について言及しないように質問の仕方を変更します。
ありがとう