【发布时间】:2014-12-25 10:29:32
【问题描述】:
根据asp.net documentation,RouteAttribute 上有一个名为RouteOrder 的属性。但是我在代码中找不到。我可以找到Order,但找不到RouteOrder。我应该假设这些是相同的吗?
【问题讨论】:
标签: asp.net routing asp.net-web-api asp.net-web-api-routing
根据asp.net documentation,RouteAttribute 上有一个名为RouteOrder 的属性。但是我在代码中找不到。我可以找到Order,但找不到RouteOrder。我应该假设这些是相同的吗?
【问题讨论】:
标签: asp.net routing asp.net-web-api asp.net-web-api-routing
是的,它们是一样的。我在关注同一篇文章时遇到了这个问题(System.Web.Http.RouteAttribute 中不存在RouteOrder)。
我在我的 Web API 2 应用程序中做了一个快速测试来验证:
[Route("{name}")] // unconstrained parameter
[HttpPost]
public string Test(string data) {
return data;
}
[Route("preview")] // literal
[HttpPost]
public string Preview(string data) {
return data;
}
当我用 Fiddler 打api/preview 时,Preview() 被击中,因为在参数段之前考虑文字段。如果我改变它以降低对文字动作的重要性:
[Route("preview"), Order = 1] // literal
[HttpPost]
public string Preview(string data) {
return data;
}
然后再次点击api/preview,Test() 被点击,符合RouteOrder 的记录行为。我不知道它为什么被重命名,但它是一样的!
【讨论】: