Oun*_*ess 6 c# asp.net-mvc url-routing
在ASP.NET MVC中,是否可以根据URL部分的数据类型定义可以确定使用哪个控制器的路由?
例如:
routes.MapRoute("Integer", "{myInteger}", new { controller = "Integer", action = "ProcessInteger", myInteger = "" });
routes.MapRoute("String", "{myString}", new { controller = "String", action = "ProcessString", myString = "" });
Run Code Online (Sandbox Code Playgroud)
基本上,我希望以下URL由不同的控制器处理,即使它们具有相同数量的部分:
MYDOMAIN/123
MYDOMAIN/ABC
PS上面的代码不起作用,但它表明了我想要实现的目标.
是的,如果您使用约束:
像这样:
routes.MapRoute(
"Integers",
"{myInteger}",
new { controller = "Integer", action = "ProcessInteger"},
new { myInteger = @"\d+" }
);
Run Code Online (Sandbox Code Playgroud)
如果你把那条路线放在你的字符串路由之上(不包含约束@"\d+"),那么它将过滤掉任何包含整数的路由,并且任何没有整数的string路径都将被传递,你的路线会接收它.
真正的诀窍是Routes可以基于正则表达式过滤正在发生的事情,这就是你如何确定应该采取什么措施的方法.
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |