我正在尝试将oData集成到.net core2.2中的应用程序中。我能够获得$ metadata响应。我需要自定义控制器的端点,但是当我使用[ODataRoutePrefix]或[ODataRoute]并尝试访问该URL时,它会给我404响应。
我正在寻找您的指导来解决此问题,因为我是第一次使用oData。
这是我在Startup.cs中添加的内容:
app.UseMvc(b =>
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
b.Select().Expand().Filter().OrderBy().MaxTop(100).Count();
b.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
});
我的控制器上的代码是:
[ODataRoutePrefix("api/ERP/Sales/v1/Promotions")]
public class PromotionsController : ODataController
{
/*Controller having dependency injection*/
[ODataRoute("")]
[EnableQuery]
public async Task<IActionResult> Get()
{
..........
.........
return Ok(response);
}
}
我在SoapUI上也遇到一个错误:
InvalidOperationException: The path template 'api/ERP/Sales/v1/Promotions' on
the action 'Get' in controller 'Promotions' is not a valid OData path template.
Resource not found for the segment 'api'
请帮助我使其正常运行,或者如果需要其他详细信息,请告诉我。
非常感谢。