Comments (8)
@rahul7720 what's your attribute, i can't find it from your sample code.
Actually, attribute routing in OData is using:
- ODataRoutePrefixAttribute
- ODataRouteAttribute
Do you use them in your project?
Here's an example: https://github.com/OData/AspNetCoreOData/blob/master/test/Microsoft.AspNetCore.OData.Tests/Routing/Conventions/AttributeRoutingConventionTests.cs#L177-L178
from aspnetcoreodata.
@xuzhg
I'm decorating the odata controller with ApiControllerAttribute
in order to leverage the advantages of it like:
- automatic model state validation
- binding source parameter inference (To avoid attributes like [FromBody] on method parameters)
Since ApiControllerAttribute
requires an endpoint routing, I have decorated the OData controller with 'RouteAttribute'
How can I achieve my requirement with the version 8.0.0?
from aspnetcoreodata.
for "binding source parameter inference (To avoid attributes like [FromBody] on method parameters)", you can add the model binding attribute on the [FromBody] parameter type, so you can avoid [FromBody].
For your scenario, can you add the route attributes all in your controller to see the result?
from aspnetcoreodata.
- "you can add the model binding attribute on the [FromBody] parameter type, so you can avoid [FromBody]" - Can you please provide a short example?
- I don't wan to check
ModelState.IsValid
on POST, PUT methods, instead I want that to happen automatically.[ApiController]
took care of the Model State validation automatically. What is the alternative in 8.0.0?
from aspnetcoreodata.
-
I mean you can use [ApiController] and [ODataRouteAttribute] together on the action or controller.
from aspnetcoreodata.
Using [ApiController] and [ODataRouteAttribute] together on the action throws runtime exception when program starts:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
Action 'TestProject.Controllers.StudentsController.Get (TestProject)' does not have an attribute route. Action methods on controllers annotated with ApiControllerAttribute must be attribute routed.
from aspnetcoreodata.
I prepared a (test project](https://github.com/sag3ll0/OData8NetCore5Test) to demonstrate my problem, which is that if you do not use the ApiController
attribute, the POST
request does not correctly receive input parameters. Added a description of the problem in the project.
If not use ApiController
attribute in controller i get null value.
If enable ApiController
and disable odata its will ok.
from aspnetcoreodata.
@sag3ll0 Sorry for delay. The failing is related to the case sensitive.
I replied it to you at https://github.com/sag3ll0/OData8NetCore5Test/issues/1
Thanks for your question.
By the way, I changed the attribute routing strategy.
If you are interested in, you can refer to https://devblogs.microsoft.com/odata/attribute-routing-in-asp-net-core-odata-8-0-rc/
and leave any comments for me. Thanks.
from aspnetcoreodata.
Related Issues (20)
- Disabling Automatic Expansion in Nested OData Entity Objects HOT 5
- Annotation to handle sanitization of field names in open types HOT 3
- Inefficient Pagination Handling in Expanded Entities ($expand ) in Microsoft.AspNetCore.OData HOT 6
- Navigation properties are not serialized in operation results HOT 7
- Error reading multipart Batch Response HOT 6
- typo odaya
- odata.metadata=full throws exceptions with $apply HOT 1
- Getting System.UriFormatException: Invalid URI: The Uri string is too long. even when using /$query
- AutoExpand and AutoSelect not working correctly with $Expand and $Select uri query parameters
- Invalid $filter and $orderby cause error 500 while it is actually bad request HOT 1
- $select doesn't work on fields of type IList<string> HOT 2
- Can't select complex property HOT 5
- OData v8.2.5: Selecting and Filtering Complex Dictionary Properties HOT 4
- $expand not working with ODataQueryOptions in the backend HOT 2
- OData filtering doesn't work with polymorphic entities HOT 3
- Really long POST $query results in incomplete JSON response HOT 5
- ODataException when entity has DateOnly or TimeOnly member HOT 6
- Error in combination with EF and SplitToTable HOT 2
- Composite key doesn't work HOT 9
- 405 Method Not Allowed on Unknown OData Route vs 404 Not Found on REST API in .NET 8 - Is This Expected Behavior? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aspnetcoreodata.