根据 asp.net documentation 在 RouteOrder
上有一个名为 RouteAttribute
的属性。但是我在代码中找不到。我可以找到 Order
,但找不到 RouteOrder
。我应该假设这些是相同的吗?
最佳答案
是的,它们是一样的。我正在关注同一篇文章,但遇到了这个问题( RouteOrder
中不存在 System.Web.Http.RouteAttribute
)。
我在我的 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
的记录行为。我不知道为什么它被重命名,但它是一样的!关于asp.net - Route 属性上的 RouteOrder 属性在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26635091/