以与控制器相同的前缀开头的路由不起作用

时间:2015-04-08 20:00:04

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

为什么以与控制器相同的前缀开头的路由不起作用?使用我的控制器上的以下代码,我正在进行一次调用,其中RoutePrefix与控制器名称相同。现在,我正在打电话,就像http://[localhost]/subscribers那样无效。

namespace WebApi.Controllers
{
 [RoutePrefix("subscribers")]
 public class SubscribersController : ApiController
 {
    [Route("")]
    [HttpGet]
    public IQueryable<string> Get()
    {
        return new string[] { "value1", "value2" }.AsQueryable();
    }
 }
}

我尝试了一些东西作为Route(&#34;〜/ subscriber&#34;)而不仅仅是Route(&#34;&#34;)但是这样做也不行。

目前适合我的选项是http://[localhost]/subscribers/all,代码

namespace WebApi.Controllers
{
 [RoutePrefix("subscribers")]
 public class SubscribersController : ApiController
 {
    [Route("all")]
    [HttpGet]
    public IQueryable<string> Get()
    {
        return new string[] { "value1", "value2" }.AsQueryable();
    }
 }
}

如何使其成为http://[localhost]/subscribers

1 个答案:

答案 0 :(得分:0)

两个样本都可以正常工作。我创建了一个新的Web项目并将两个版本添加到项目中。 尝试创建示例项目并检查问题是否仍然存在。