C# ASP.NET MVC URL路由

C# ASP.NET MVC URL路由,c#,asp.net-mvc,url-routing,C#,Asp.net Mvc,Url Routing,在ASP.NET MVC中,是否可以定义可以根据URL部分的数据类型确定要使用哪个控制器的路由 例如: routes.MapRoute("Integer", "{myInteger}", new { controller = "Integer", action = "ProcessInteger", myInteger = "" }); routes.MapRoute("String&

在ASP.NET MVC中,是否可以定义可以根据URL部分的数据类型确定要使用哪个控制器的路由

例如:

routes.MapRoute("Integer", "{myInteger}", new { controller = "Integer", action = "ProcessInteger", myInteger = "" });

routes.MapRoute("String", "{myString}", new { controller = "String", action = "ProcessString", myString = "" });
基本上,我希望以下URL由不同的控制器处理,即使它们具有相同数量的部分:

mydomain/123

mydomain/ABC

另外,上面的代码不起作用,但它表明了我想要实现的目标。

是的,如果您使用:

像这样:

 routes.MapRoute(
                "Integers",
                "{myInteger}",
                    new { controller = "Integer", action = "ProcessInteger"},
                    new { myInteger = @"\d+" }
          );
如果您将该路由置于字符串路由之上(该路由不包含
@“\d+”
)的约束),则它将过滤掉任何包含整数的路由,任何不包含整数的路由都将被传递,您的
字符串
路由将拾取它

真正的诀窍是,Routes可以根据您的选择筛选出需要的内容,这就是您可以确定应该选择哪些内容的方式。

没问题。我对ASP.NET MVC路由有很多问题。足以填满一本书。或者一些博客文章。如果我有机会完成的话。