0
的Web API定制路由
我们正在努力实现我们的API VersionedRoutes和正在申报的一类我们的路线:具有相同名称但不同的HTTP方法
new VersionedRoute(
version,
"GetRiskReports",
"/Members/{id}/Cpin/RiskReports",
new RouteValueDictionary
{
{"controller", "Members"},
{"action", "GetRiskReports"},
{"id", RouteParameter.Optional}
}),
new VersionedRoute(
version,
"PostRiskReports",
"/Members/{id}/Cpin/RiskReports",
new RouteValueDictionary
{
{"controller", "Members"},
{"action", "PostRiskReports"},
{"id", RouteParameter.Optional}
})
控制器方法声明如下:
[HttpGet]
public HttpResponseMessage GetRiskReports(int id)
[HttpPost]
public HttpResponseMessage PostRiskReports(int id)
明显的那一刻,GET请求到URL /成员/ 123/CPIN/RiskReports路由通过与第一路线确定,但一POST请求失败路由的,因为它与第一路线,但该控制器的方法相匹配被标记为仅GET。无论如何要将HTTP方法添加到自定义路线。客户端不想更改路由名称。