2009-09-18 113 views
2

我的第一个航线的航班:MVC抓住所有的工作不

// Should work for /Admin, /Admin/Index, /Admin/listArticles 
    routes.MapRoute(
     "Admin",            // Route name 
     "Admin/{action}",       // URL with parameters 
     new { controller = "Admin", action = "Index" } // Parameter defaults 
); 

不解决途径(我用Phil Haack's Route Debugger),甚至最后的路线,“抓住所有的”路线不工作:

//Maps any completely invalid routes to ErrorController.NotFound 
    routes.MapRoute("Catch All", "{*path}", 
     new { controller = "Error", action = "NotFound" } 
); 

如果我去/Admin/listArticles它的工作原理,但/Admin给我Error 403.15 "The Web server is configured to not list the contents of this directory."指向我的想法,没有路由使用,因为它会在目录中的物理文件?

这是一个简单的低层次的路线问题,但我不能让它工作,大家给我链接,阅读(是的,我知道MSDN就在那里),但没有真正的答案。我已经研究过路线并尝试过,但是我发布了这条路线,因为我无法得到它的工作,任何帮助,答案?

+0

的可能的复制[净MVC路由全部接收不工作(http://stackoverflow.com/questions/318886/net-mvc-routing-catchall-not-working) – jgauffin 2016-05-17 05:49:20

回答

1

的问题可能是你所添加的默认路由下面这条线路,所有的定制路由应该默认路由上面添加。

谢谢,
Mahesh Velaga。

0

你使用IIS 6.0吗?如果是这样,它会需要像...

// Should work for /Admin, /Admin/Index, /Admin/listArticles 
    routes.MapRoute(
     "Admin",            // Route name 
     "Admin.mvc/{action}",       // URL with parameters 
     new { controller = "Admin", action = "Index" } // Parameter defaults 
); 

,你需要set mvc as an application extension

1

的回答我的问题是,我有一个名为/管理路线,我写我的错误日志到目录/管理/错误似乎没有超载,如果指定的路线应该得到解决,或者如果它是一个物理目录的一部分。