2008-12-16 100 views
1

我有两条路线我想在我的ASP.NET MVC应用程序映射ASP.NET MVC路线问题

  1. /用户/注册
  2. /用户/ {用户ID}/{名}/{行动} (例如:/用户/ 1 /胡说/ profile文件)

这里是我定义的路由:

routes.MapRoute(
     "Profile", 
     "Users/{userID}/{username}/{action}", 
     new { controller = "Users", action = "Profile" } 
    ); 

    routes.MapRoute(
     "Default", 
     "{controller}/{action}/{id}", 
     new { controller = "Home", action = "Index", id = "" } 
    ); 

这在大多数情况下,大为止。下面的网址从我的主页工作:

<%= Html.ActionLink((UsersController x) => x.Login(), "Login") %> 
<%= Html.ActionLink((UsersController x) => x.Profile(1, "blah") %> 

这些地图(恭敬地):

/用户/登录 /用户/ 1 /等等

但是,一旦我浏览到/ Users/1/blah,登录网址立即变为/ Users/1/blah/login。任何想法如何解决这个问题?

回答

0

是你的路线击中授权过滤器?是否需要登录才能查看/ Users/1/blah页面? (即是有上UsersController类的[授权]属性,或在配置文件操作?)

那么,如果它不是一个授权过滤器,我高度建议你实现这个Routing Debugger Tool到您的项目。

+0

没有,任何人都可以查看此页面。我不确定这与路由有什么关系。或者你只是好奇? – 2008-12-16 21:54:16