我有一个通过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 Help Page package . 然后我想我应该尝试Swashbuckle Swagger,看看这是否有助于我完全避免这个问题,但不幸的是,在这两种情况下我都遇到了同样的错误:
路径模板分隔符'/'不能连续出现 . 它必须由参数或文字值分隔 . 参数名称:routeTemplate
在尝试了一些事情后,事实证明,当更改路径模板并删除 {action}
部分时,错误消失了 . 但是,我不能真的这样做,因为整个项目假设URL包含其中的操作方法名称 .
所以无论如何,我想知道以下内容:
-
为什么这首先发生?
-
有没有办法修改这种行为?
提前致谢!
1 回答
我得到了同样的问题 . 以下是我的工作代码 .
当我在方法之前改变路线时
至
我得到了同样的错误 . 如果在控制器的任何方法之前添加额外的 / (如果第一次没有调用它),它将生成 .
我不确定你的病情 . 如果有人得到帮助,我会分享我的情况 .