我有一个控制器上的许多行动
I have many actions on a controller
Controller1\Action1 Controller1\Action2 Controller1\Action3 Controller1\Action4 Controller1\Action5 Controller1\Action6我想我的网址永远只是:
I would like my URLs to always be just:
Action1 Action2 Action3 Action4 Action5 Action6有没有一种简单的方法来做到这一点?我不会有任何冲突,其中:
Is there an easy way to do this? I won't have any conflicts where:
Controller1\Action1 Controller2\Action1每一个动作都会有一个唯一的名称。
Every action will have a unique name.
推荐答案您应该能够做这样的事:
You should be able to do something like this:
routes.MapRoute( "CatchAll", "{action}/{*path}", new { controller = "MyController", action = "Index" } );基本上你告诉它所有的请求应该将路径作为行动和他们都应该去myController的。行动=指数作为该操作未在URL中提供的事件的缺省值。
Essentially you're telling it all requests should treat the path as the Action and they should all go to "MyController". The action = "Index" acts as a default in the event that an Action is not provided in the Url.
上面的路由定义将评估为真,即使额外的,无效的路径数据动作名称后面。这也就意味着,无论 /措施1 和 /措施1 / 251958125ad / 2512qsadfa2 将前往措施1()。如果您想preFER只有确切路径被允许的:
The above route definition will evaluate to true even if extra, invalid path data is appended after the action name. What that means is that both /Action1 and /Action1/251958125ad/2512qsadfa2 will go to Action1(). If you would prefer that only the exact path be allowed:
routes.MapRoute( "CatchAll", "{action}", new { controller = "MyController", action = "Index" } );更多推荐
任何方法来创建一个包罗万象的路线
发布评论