Closed
Description
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"
}