我有一个通过 OWIN 中间件托管的 Web API 2 项目。一切正常,我可以按预期调用我的 API。但是,我的 WebApiConfig 定义默认路由如下:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
因此,我必须使用类似于以下内容的 URL 调用我的 API:/api/values/dosomething
这对我有用,直到我决定记录我的 API。为此,我首先尝试使用不起作用的WebAPI 帮助页面包。然后我想我应该试试Swashbuckle Swagger看看这是否能帮助我完全避免这个问题,但不幸的是,在这两种情况下我都遇到了同样的错误:
路由模板分隔符“/”不能连续出现。它必须由参数或文字值分隔。参数名称:路由模板
尝试了几件事后,结果发现当更改路由模板并删除{action}
部分时,错误消失了。但是,我不能真正做到这一点,因为整个项目都假定 URL 中包含操作方法名称。
所以无论如何,我想知道以下内容:
- 为什么会发生这种情况?
- 有没有办法修改这种行为?
提前致谢!