根据asp.net documentation,RouteOrder
上有一个名为RouteAttribute
的媒体资源。但是我在代码中找不到。我可以找到Order
,但不是RouteOrder
。我应该假设这些是相同的吗?
答案 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/preview
,Test()
被点击,与RouteOrder
的记录行为一致。我不知道为什么要重命名,但它是一样的!