2016-04-13 5 views
0

Я хочу, чтобы настроить мой Url, чтобы перейти от ...User/Details/1 к .../Antonio где Антонио это имя пользователя, чей идентификатор 1.ASP 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 } 
      ); 

, а затем ваш анкор:

@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? вы просто добавляете имена параметров, такие как {param}, а затем, когда вы вызываете его в параметрах маршрута, устанавливаете свои значения, например ..., new {userName = "Antonio", другие параметры}) –

+0

Да, мне нужен идентификатор, потому что 2 пользователя могут иметь одинаковое имя, поэтому, когда я передаю только имя контроллеру, невозможно восстановить правильного пользователя. –