【发布时间】:2014-07-01 04:40:12
【问题描述】:
我终其一生都无法弄清楚为什么我的属性路由不起作用。
这是我的设置:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Attribute routing
config.MapHttpAttributeRoutes();
// Convention-based routing
config.Routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
这是我的控制器和我的路由属性:
[Route("api/v1.0/orders")]
public class OrdersV1Controller
{
[APIAuthentication(RequireAuthentication = true)]
[HttpGet]
[Route("{id:int}")]
public GetOrderResponse GetOrder(int id)
{
.....
}
}
这是我的全局 asax 文件:
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Populate;
}
}
这是我正在测试的 URL,它返回 404 未找到:
http://localhost:60105/api/v1.0/orders/111111
【问题讨论】:
-
你考虑过
public class OrdersV1Controller : ApiController -
哇,我不敢相信我在所有示例中都错过了这一点......啊......做到了,伙计......添加它作为答案,这样我就可以给你信用
-
哈哈很高兴它修复了它
-
嘿 - 你和我俩,我已经为此工作了 2 天... lmao.. 我觉得很愚蠢.. 哈哈再次感谢伙计
标签: c# asp.net asp.net-web-api asp.net-web-api-routing