找到了多个操作:/ resource / id vs / resource / id / action

时间:2013-12-04 11:32:00

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

我意识到这是一个常见的问题,但我找不到一个用我的配置正确提出相同问题的问题。

我的默认路线如下:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}/{action}",
    defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional }
    );

我的控制器看起来像这样:

public class VariablesController : ApiController
{
    public IEnumerable<Variable> Get()
    {
        // get all
    }

    public Variable Get( int id )
    {
        // get individual
    }

    [HttpGet]
    public DistributionReport GetDistribution( int id )
    {
        // get distribution report
    }
}

当我GET /api/variables/1/getDistribution时,它运作正常。

当我GET /api/variables/1时,我得到500例外:

  

找到与请求匹配的多个操作:      Models.Variable类型Controllers.Api.VariablesController上的Get(Int32)      Models.DistributionReport类型Controllers.Api.VariablesController上的GetDistribution(Int32)

我需要做些什么来修改我的情况,以便它们都有效?

0 个答案:

没有答案