有没有办法让MVC.NET路由忽略几个/ dir / paths /?

时间:2010-01-11 21:11:42

标签: asp.net-mvc url-routing

意思是我可以在site.com/v3/site/controller/action

中启动URL路由

基本上它会忽略v3 / site /并将其视为root?

2 个答案:

答案 0 :(得分:3)

你确定可以。查看以下路线:

routes.MapRoute("Route1", "StaticFolder/{name}/{id}", new { controller = "Controller1", action = "Action1", name = "Sample", id = "1" });

对于Action1中的任何资源请求,路由1将始终在Controller1上调用StaticFolder

routes.MapRoute("Route2", "StaticFolder1/{id}/{action}", new { controller = "Controller2", action = "Action2", id = "1" });

对于对StaticFolder1的任何请求,路由2将始终使用指定的操作(默认为Controller2)调用Action2

在您的情况下,具体但您要删除默认路由并将其替换为以下内容:

routes.MapRoute("Default", "/v3/site/{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" });

答案 1 :(得分:0)

听起来应用程序根位于/ v3 / site。据我所知,ASP-MVC的路由不能拦截其自己的根目录下的路由(可能是一个安全问题)。看起来更像是需要的IIS配置而不是MVC路由规则。