1

ルーティング構成をセットアップしようとしていますが、「要求に一致する複数のアクションが見つかりました:」という例外が発生しています。

/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+$" }
        );

ありがとう

4

0 に答える 0