2011-05-02 49 views
1

我的一个项目,在这里我使用了默认的路由Asp.net MVC详细方法

routes.MapRoute(
      "Default",            // Route name 
      "{controller}/{action}/{id}/{name}",       // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional, name = UrlParameter.Optional } // Parameter defaults 
     ); 

我有一个用户控制器和方法,如指标的工作,创建和细节

我不想创建链接像http://mysite/users/details/111/somename 而不是我想创建http://mysite/users/111/somename 像stackoverflow类的URL。 我知道我可以通过注册这样的路径(默认路由前)实现

routes.MapRoute(
      "UsersDetails",            // Route name 
      "Users/{id}/{name}",       // URL with parameters 
      new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional } // Parameter defaults 
     ); 

但后来我的所有其他网址开始创建的问题。例如,如果我有网址 http://somesite/users/registersuccess

是否有解决此问题的方法,或者我应该注册所有的URL。

问候

成员Parminder

回答

0

你会需要在你的id参数约束你的路线:

routes.MapRoute(
    "UsersDetails", 
    "Users/{id}/{name}", 
    new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }, 
    new { id="\d+" } 
    ); 

那么你的其他途径将不会受到影响。

+0

谢谢你的工作。 – Parminder 2011-05-02 04:00:55

相关问题