我遇到以下路线的问题:
config.Routes.MapHttpRoute(
name:"Logs-Watcher-File",
routeTemplate: "{controller}/{watcher}/{id}",
defaults: new { controller = "Logs", id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Logs-Index",
routeTemplate: "{controller}",
defaults: new { controller = "Logs" }
);
这是控制器:
public class LogsController : ApiController {
public HttpResponseMessage GetIndex() {
}
public HttpResponseMessage GetWatcher(string watcher) {
}
public HttpResponseMessage Getlogfile(string watcher, string id) {
}
}
如果我打开http://locahost:*myport*/Logs
,则调用GetIndex() - >的确定
如果我打开http://locahost:*myport*/Logs/WatcherName
,则使用正确的观察者参数调用GetWatcher(字符串观察者) - > 确定
(动态创建/加载WatcherName,因此它可以是任何名称)
以下是问题:
如果我打开http://locahost:*myport*/Logs/WatcherName/123
,则调用GetIndex() - >的 NOK
知道为什么Getlogfile(string watcher, string id)
不匹配?
尝试了任何可能的组合(甚至定义了{action}并使用了[ActionName(“logfile”)])并且还将参数从字符串id 更改为 int id 没有成功
任何帮助将不胜感激
修改(固定):
问题是我作为第一条路线的另一条路线:
config.Routes.MapHttpRoute("Ui", "{controller}/{path}/{fileName}", new { controller = "Ui" });
修正了将{controller}
替换为相应的前缀Logs
或Ui
有乐趣的人