具有正则表达式的MVC路由

时间:2012-03-19 09:23:23

标签: asp.net-mvc routing

我正在尝试将约束放在不想工作的路线上。而不是提供允许的控制器列表的约束,我试图将此路由限制到除ProjectController之外的所有控制器。

    context.MapRoute("Project_Projects",
        "Project/{prj}/{controller}/{action}/{id}",
        new { controller = "Dashboard", action = "Index", 
              id = UrlParameter.Optional },
        new
        {
            prj = new ProjectRouteConstraint(),
            controller = @"[^Project]"
        }
        );

此路由应该用于除ProjectController之外的所有控制器。就文档而言,它将使用Regex.IsMatch函数来检查它,并且我仔细检查正则表达式并且看起来是正确的,但它似乎不起作用。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

尝试以下约束:

controller = @"^(?!project$).*$"