我正在与WebApi路线的解决方案作斗争,因为路线模板中没有为令牌提供值,我希望将它们自动填充为默认值。
我的路线声明:
config.Routes.MapHttpRoute(
name: "LandingPage Route",
routeTemplate: "api/{version}/{controller}/{id}",
defaults: new
{
controller = "LandingPageCommon",
id = System.Web.Http.RouteParameter.Optional,
version = ApiVersions.None,
logging = true
},
constraints: new
{
version = new ApiVersionRouteConstraint()
}
// handler: apiVersionHandler
);
现在我通过Postman拨打2个电话:
1)按照预期工作(我给予了适当的实体)GET / api / v3 / LandingPageCommon / 886858
2)不适用于GET / api / LandingPageCommon / 886858
我已经创建了自定义RouteConstraint来保护{version}参数。在调试第二个电话时,我看到,路由令牌未正确设置({version} - > {controller}和{controller} - > {id}):
在sime时间,我看到路线声明中的默认值:
为什么第二次调用{version}未设置为默认值? 感谢