【发布时间】:2013-02-14 15:54:23
【问题描述】:
我目前正在开发一个 asp.net mvc 4 应用程序,我需要以下类型的 url:
需要路由的网址
我遇到的问题是当前 {username} 被视为一项操作,因此为了解决我实施以下路线的问题,但这意味着每次我想实施一个新操作,或者有一个需要 {username} 的控制器,我将不得不更新我的路线:
仅显示 Foo 路线
routes.MapRoute("FooSomeAction", "foo/someaction", new { controller = "Food", action = "SomeAction" });
routes.MapRoute("FooDelete", "foo/delete/{id}", new { controller = "Food", action = "Delete" });
routes.MapRoute(
"FooProfile",
"foo/{username}",
new { controller = "Foo", action = "Index", username = "" }
);
// Default route
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
2 个问题
1) 有没有什么方法可以在不对所有路由进行硬编码的情况下实现上述网址?
2) 处理某人使用的用户名恰好与控制器或操作名称相同的情况的最佳方法是什么?
DotnetShadow
【问题讨论】:
-
据我所知,您的第二个问题是不可能的。那里也有行动有什么不好?
-
在里面也有动作有什么不好? – 对不起,你这是什么意思?
-
抱歉,如果我含糊其辞,我的意思是您可以在链接中同时包含动作和控制器名称吗? /User/Edit/User1 之类的东西?
标签: asp.net-mvc asp.net-mvc-4 routes asp.net-mvc-routing