如何禁止在路由OData中只获取元数据?

问题描述 投票:0回答:1

我添加了两个路由。其中一条包含动态前缀。

ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntityType<UOM>();
        var entityType = builder.EntityType<Product>();
        builder.EntitySet<Product>("Products");
        builder.EntitySet<UOM>("UOMs");

        var model = builder.GetEdmModel();
        config.MapODataServiceRoute(
        routeName: "ODataRoute",
        routePrefix: null,
        model: model);

        config.MapODataServiceRoute(
        routeName: "ODataRouteWithContext",
        routePrefix: "{context}/",
        model: model);

现在当我发送 https:/localhost:44326。 我将得到元数据。

result

但当我尝试像这样的事情 https:/localhost:44326xyz)。 它也会返回元数据。

第二条路径的目的是为了从特定的上下文中获取实体。例如: https:/localhost:44326ac2db7f3-7581-4e6a-afa0-c4548d6ae89a产品。 所以,上下文前缀应该只有Guid类型。但我不想显示元数据的 https:/localhost:44326xyz)。 请求。那么如何解决这个问题呢?

routes odata prefix
1个回答
1
投票

我在路由中添加了自定义约定,并忽略了像这样显示元数据。

conventionsWithContextTokenPrefix.Except(conventionsWithContextTokenPrefix.OfType<MetadataRoutingConvention>())
© www.soinside.com 2019 - 2024. All rights reserved.