2016-04-13 65 views
0

我想自定義我的網址,以便從...User/Details/1更改爲.../Antonio,其中安東尼是用戶名的ID爲1ASP MVC routeconfig - 如何自定義URL以用戶名

我能做些什麼比如強制名稱:

routes.MapRoute(
        "Name", 
        "{controller}/Antonio/{id}", 
        new { controller = "usuarios", action = "Details", id = UrlParameter.Optional } 
      ); 

但是id參數仍在使用中。什麼是最好的方式來做到這一點?

+0

您是否找到解決方案? –

回答

0

只需設置它作爲一個參數,然後給param所從HTML輔助

這樣的值:

routes.MapRoute(
       name: "Name", 
       url: "{controller}/{action}/{userName}", 
       defaults: new { controller = "usuarios", action = "Details", userName= UrlParameter.Optional} 
       ); 

編輯與2個PARAMS

或者像:

routes.MapRoute(
        "Name", 
        "{controller}/{action}/{username}/{id}", 
        new { controller = "usuarios", action = "Details", id = UrlParameter.Optional } 
      ); 

然後你的ancor:

@Html.ActionLink("Visit Antonio", "Details", "usuarios", new { id = UserID, username = UserName }, new { }) 

以這種方式,您可以添加儘可能多的參數。

+0

你的意思是這樣'new {controller =「usuarios」,action =「Details」,id = UrlParameter.Optional,name = UrlParameter.Optional}'? –

+0

你還需要ID嗎?你只需添加參數名稱,如{參數},然後當你在路由參數設置它們的值,例如...,新{用戶名=「安東尼奧」,其他參數})調用它的名稱 –

+0

是的,我需要的ID,因爲2個用戶可以具有相同的名稱,所以當我僅將名稱傳遞給控制器​​時,無法恢復正確的用戶。 –