ASP.NET MVC路由:定义包含子路径的路由

时间:2011-01-04 22:19:16

标签: asp.net-mvc asp.net-mvc-routing

假设我想将/ js / *中的所有请求转发到JavaScript控制器Index方法。换句话说,这些路由都应该调用JavaScriptController.Index()

/js/root/index.css
/js/user/account/index.css
/js/master.css

我的Global.asax.cs文件中的路由定义是什么?

这似乎不起作用:

routes.MapRoute("JavaScript", "js/{*path}",
    new { controller = "JavaScriptController", action = "Index" });

在调试模式期间永远不会使用以下函数调用断点:

public class JavaScriptController : Controller
{
    [HttpGet]
    public void Index(string path)
    {
        var browser = HttpContext.Request.Browser;
        System.Diagnostics.Debugger.Break();
    }
}

我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

您应该在路由默认值中具有控制器短名称,例如:

    routes.MapRoute(
     "JavaScript", 
     "js/{*path}",     
      new { controller = "javascript", action = "Index" }
   ); 

这样可行。