2016-04-13 6 views
0

Ich möchte, dass meine URL anpassen können, um ...User/Details/1-.../Antonio zu ändern, in dem Antonio ist der Name Benutzer, dessen ID 1.ASP MVC routeconfig - wie anpassen URL mit Benutzernamen

Ich bin in der Lage, etwas zu tun So zwingt der Name:

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

aber ID-Parameter wird noch verwendet. Was ist der beste Weg, es zu tun?

+0

Haben Sie die Lösung gefunden? –

Antwort

0

Stellen Sie einfach als Parameter und dann gibt sie zu, dass param Wert von html-Helfer

So:

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

Bearbeiten mit 2 params

Oder wie:

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

und dann Ihre Ancor:

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

auf diese Weise fügen Sie so viele Parameter hinzu, wie Sie möchten.

+0

Du meinst so 'new {controller = "usuarios", action = "Details", id = URLParameter.Optional, name = URLParameter.Optional} '? –

+0

brauchst du noch die ID? du fügst einfach die Parameternamen wie {param} hinzu und dann, wenn du es in der Route anrufst parameters setze ihre Werte zum Beispiel ..., new {userName = "Antonio", andere params}) –

+0

Ja, ich brauche die ID, weil 2 Benutzer können denselben Namen haben. Wenn ich also nur den Namen an den Controller übergebe, ist es nicht möglich, den korrekten Benutzer wiederherzustellen. –