Route属性上的RouteOrder属性在哪里?

时间:2014-10-29 15:58:32

标签: asp.net routing asp.net-web-api asp.net-web-api-routing

根据asp.net documentationRouteOrder上有一个名为RouteAttribute的媒体资源。但是我在代码中找不到。我可以找到Order,但不是RouteOrder。我应该假设这些是相同的吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

是的,它们是一样的。我正在关注同一篇文章,但我遇到了这个问题(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的记录行为一致。我不知道为什么要重命名,但它是一样的!