ルーティング構成をセットアップしようとしていますが、「要求に一致する複数のアクションが見つかりました:」という例外が発生しています。
/api/Devices/{id} に移動するとエラーが表示される
私は犯人の方法を知っています - GetParts。controller/id の一致の可能性としてまだトリガーされるのはなぜですか? 停止するにはどうすればよいですか、または get メソッドのみを適用するにはどうすればよいですか?
public Devices Get(int id)
{
return Uow.Distribution.Devices.GetById(id);
}
[ActionName("GetParts")]
public IEnumerable<DeviceParts> GetParts(int id)
{
return Uow.Distribution.Devices.GetParts(id);
}
マイルート
routes.MapHttpRoute(
name: ControllerOnly,
routeTemplate: "api/{controller}"
);
routes.MapHttpRoute(
name: ControllerAndId,
routeTemplate: "api/{controller}/{id}",
defaults: null,
constraints: new { id = @"^\d+$" }
);
routes.MapHttpRoute(
name: ControllerAction,
routeTemplate: "api/{controller}/{action}"
);
routes.MapHttpRoute(
name: ControllerActionAndId,
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^\d+$" }
);
ありがとう