【发布时间】:2015-02-27 19:35:07
【问题描述】:
我正在尝试向 ApiController 添加属性路由,如下所示:
public class PhoneNumbersController : ApiController
{
// GET BY ID
public PhoneNumber GetById(int id)
{
return PhoneNumbersSelect(id)[0];
}
// GET BY ID TypeOFPhoneNumbers/Id
[Route("api/typeOfPhoneNumbers/{id}")]
public TypeOfPhoneNumber GetTypeOfPhoneNumberById(int id)
{
return TypeOfPhoneNumbersSelect(id)[0];
}
}
我的配置如下所示:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我在尝试调用 api/phoneNumbers/1 时收到 500 错误。如果我注释掉 GetTypeOfPhoneNumbersId() 函数,则默认控制器 GetById() 可以正常工作。我究竟做错了什么?由于配置的设置方式,我是否不允许在 ApiController 中声明唯一路由?
另外,正如我刚刚发现的,调用 api/typeOfPhoneNumbers/1 会返回 404 错误,因此路由根本不起作用。
感谢您的帮助!
【问题讨论】:
-
路由是怎么配置的?
-
我知道这是旧的但是...
[Route("~/api/typeOfPhoneNumbers/{id}")]
标签: asp.net-web-api asp.net-mvc-routing