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

本文关键字:单独 RoutePrefix 属性 控制器 v2 Web API | 更新日期: 2023-09-27 18:16:34

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

我分裂我的控制器通过使他们partial:

文件夹结构pic

所有的JDE文件夹下的部分文件必须有相同的RoutePrefix和操作将使url唯一。

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

我希望每个局部文件都有自己的路由前缀,每个动作都有一个路由。

如果我把RoutePrefix放在一个以上的文件,我得到一个错误。

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

类的部分文件仍然被认为是一个单独的类,所以你不能使用多个路由前缀属性…考虑为您的场景创建多个控制器类型…

我所做的是:

首先,我将这一次添加到我的部分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) { ... }
}