根据 asp.net documentationRouteOrder 上有一个名为 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/previewTest() 被击中,符合 RouteOrder 的记录行为。我不知道为什么它被重命名,但它是一样的!

关于asp.net - Route 属性上的 RouteOrder 属性在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26635091/

10-10 05:09