使用oData的控制器上的自定义路由不起作用

时间:2019-04-11 06:31:04

标签: .net-core odata

我正在尝试将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'

请帮助我使其正常运行,或者如果需要其他详细信息,请告诉我。

非常感谢。

0 个答案:

没有答案