2011-05-02 68 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