Skip to content

Wrong property navigation action is selected in ODATA controllers #336

Closed
@GennadyGS

Description

@GennadyGS

When there are multiple navigation actions in ODATA controller, first one (based on method order in class) is always executed regardless of requested navigation property.

Example (can be verified in ODataBasicSample):

    [ODataRoutePrefix( "People" )]
    public class People0Controller : ODataController
    {
        [ODataRoute( "({id})/FirstName" )]
        public IActionResult GetFirstName( [FromODataUri] string id, ODataQueryOptions<Person> options ) =>
            Ok( new { FirstName = $"{id}-first-name" } );

        [ODataRoute( "({id})/LastName" )]
        public IActionResult GetLastName( [FromODataUri] string id, ODataQueryOptions<Person> options ) =>
            Ok( new { LastName = $"{id}-lastName" } );
   }

Request:
http://localhost:1238/api/People(1)/LastName?api-version=1.0

Actual response:

{
    "firstName": "1-first-name"
}

Expected response:

{
    "lastName": "1-last-name"
}

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions