部分Web API v2控制器上的单独RoutePrefix属性

时间:2014-08-06 12:11:13

标签: c# asp.net-web-api asp.net-mvc-routing

我在我的一个Web API中遵循RPC方法,为此我将在我的控制器中使用属性路由。

我通过制作partial来分割我的控制器:

Folder structure pic

JDE文件夹下的所有部分文件必须具有相同的RoutePrefix,并且操作将使该URL唯一。

namespace Enterprise.Api.Controllers.JDE.Distribution
{
    [RoutePrefix("/api/jde/distribution")]
    public partial class JDEController : ApiController
    {

    }
}

我希望每个部分文件都有自己的路由前缀,并且每个操作都有一条路径。

如果我将RoutePrefix放在多个文件中,我会收到错误。

2 个答案:

答案 0 :(得分:2)

类的部分文件仍被视为一个单独的类,因此您不能使用多个路由前缀属性...考虑为您的方案创建多个控制器类型...

答案 1 :(得分:0)

所以我做的是:

首先,我将这一次添加到我的部分APi控制器:

[RoutePrefix("api/jde")]
public partial class JDEController : ApiController
{
    public JDEController()
    {

    }
}

然后我在我的方法中添加一个Route属性来获得我想要的东西

public partial class JDEController : ApiController
{

    [Route("orders")]
    public IEnumerable<Order> Get(int customerId) { ... }
}