【发布时间】:2023-04-10 03:20:01
【问题描述】:
我们正在尝试在我们的 API 上实现 VersionedRoutes,并在一个类中将我们的路由声明为:
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)
显然,此时,对 url /Members/123/Cpin/RiskReports 的 GET 请求可以路由到第一个路由,但是 POST 请求无法路由,因为它匹配第一个路由但控制器方法被标记仅作为 GET。无论如何将HTTP方法添加到自定义路由。客户端不想更改路由名称。
【问题讨论】:
标签: c# asp.net-mvc asp.net-web-api asp.net-web-api-routing