【发布时间】:2015-03-06 14:48:14
【问题描述】:
我知道它几乎是一样的(所以在这个上面有超过 5,600 questions),但我已经坐在这个上面好几天了,所以我想现在是提出问题的正确时机。
我的要求
我想在我的 asp.net mvc 应用程序中有以下路由:
- myapp.com/sigin -> 控制器 = 帐户,操作 = 登录
- myapp.com/signout -> 控制器 = 帐户,操作 = SignOut
- myapp.com/joe.smith -> 控制器 = 用户,操作 = 索引
- myapp.com/joe.smith/following -> 控制器 = 用户,操作 = 关注
- myapp.com/joe.smith/tracks -> 控制器 = 轨道,动作 = 索引
- myapp.com/about -> 控制器 = 关于,操作 = 索引
- 任何其他默认路由,这就是我将标准路由留在那里的原因。
我的代码
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "About",
url: "about",
defaults: new { controller = "About", action = "Index" }
);
routes.MapRoute(
name: "MyTracks",
url: "{username}/tracks",
defaults: new { controller = "MyTracks", action = "Index" }
);
routes.MapRoute(
name: "MyTunes",
url: "{username}/tunes",
defaults: new { controller = "MyTunes", action = "Index" }
);
routes.MapRoute(
name: "MyProfile",
url: "{username}",
defaults: new { controller = "User", action = "Index"},
constraints: new { username = "" }
);
routes.MapRoute(
name: "Account",
url: "{action}",
defaults: new { controller = "Account" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
问题
3 号和 4 号路线无法正常工作,因为它们与 1 号和 2 号路线混淆了。我尝试使用 Phil Haack 的 routing debugger 调试我的代码,但没有运气。任何想法我做错了什么?
【问题讨论】:
标签: c# asp.net-mvc routes