C#HttpSelfHostServer Routes.MapHttpRoute

时间:2014-11-21 10:20:26

标签: c# asp.net-web-api asp.net-mvc-routing

我遇到以下路线的问题:

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}替换为相应的前缀LogsUi

有乐趣的人

0 个答案:

没有答案