首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OData v4路由前缀?

OData v4路由前缀?
EN

Stack Overflow用户
提问于 2015-04-08 03:10:49
回答 1查看 13K关注 0票数 9

我有一个并列的Web API2.2 APIController和OData v4 ODataController。我的APIController在内部使用路由属性,如下所示(没有预定义的路由默认值):

代码语言:javascript
运行
复制
  [RoutePrefix("api")]
  public class MyController : ApiController
  {
    [HttpGet]
    [Route("My")]
    public IHttpActionResult Get()
    {
      //Code Here
    }

    [HttpGet]
    [Route("My")]
    public IHttpActionResult Get([FromUri] String mykey)
    {
      //Code Here
    }
  }

这样路由到./api/My和./api/My/?mykey=value

我试着把我的ODataController设置成类似的方式:

代码语言:javascript
运行
复制
  [ODataRoutePrefix("My")]
  public class oMyController : ODataController {

    [HttpGet]
    public IHttpActionResult Get(ODataQueryOptions<FileModel> queryOptions) {
      //Code Here
    }

    [HttpGet]
    [ODataRoute("({mykey})")]
    public IHttpActionResult Get([FromODataUri] String mykey) {
      //Code Here
    }
  }

像这样提前定义odata路由:

代码语言:javascript
运行
复制
  ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
  builder.EntitySet<MyModel>("My");
  config.MapODataServiceRoute(
    routeName: "ODataRoute",
    routePrefix: "odata",
    model: builder.GetEdmModel()
  );

但是尝试访问./odata/My和./odata/ my (值)最终进入我的APIController而不是ODataController。

我如何使用不同的前缀,但是相同的名称,将它们路由到适当的控制器。我不希望每个路由都有一个不同的名称,如果我能防止它的话,前缀应该会处理所有的事情,但出于某种原因,它们不是。

EN

回答 1

Stack Overflow用户

发布于 2015-04-08 03:34:25

您需要指定ODataRoute属性,即使该属性为空:

代码语言:javascript
运行
复制
[ODataRoutePrefix("My")]
public class oMyController : ODataController {

  [HttpGet]
  [ODataRoute()] // <---<< This was the key to proper OData routing
  public IHttpActionResult Get(ODataQueryOptions<FileModel> queryOptions) {
    //Code Here
  }

  [HttpGet]
  [ODataRoute("({mykey})")]
  public IHttpActionResult Get([FromODataUri] String mykey) {
    //Code Here
  }

}
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29499378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档