2012-03-25 11 views
1

Ich baue eine kleine MVC-Anwendung. Nachdem sich ein Benutzer anmeldet ich seine/ihre Route angezeigt werden soll:MVC MapRoute mit Benutzername

www.appname.com/username/

Darunter natürlich gleiche Vorgang wird für jeden Benutzer aufgerufen z.B. /home/index. Wie schreibe ich meine MapRoute, um das zu erreichen und welchen anderen Code (Attribute) soll ich verwenden?

+0

Welche Zeichen sind in einem Benutzernamen berechtigt? Erlauben Sie einem Benutzer, sich auf Ihrer Site mit username = Home/Index zu registrieren? –

+0

@Darin Dimitrov, Benutzernamen haben keine Sonderzeichen. Ich baue es hauptsächlich für Lernzwecke, also nichts übermäßig komplex, möchte nur Benutzer haben, um sich einzuloggen und eine benutzerdefinierte URL zu sehen, die mit anderen Leuten geteilt werden könnte. – mishap

Antwort

1

Fügen Sie diese Router auf Ihre Routen in global.asax.cs Datei

routes.MapRoute(
      "RouteName", // Route name 
      "FixedUrlSegment/{UserName}/{Controller}/{action}/{id}/", // URL with parameters 
      new { controller = "ControllerName", 
        action = "ActionName", 
        id=UrlParameter.Optional 
       }, 
     ); 

Ich glaube, Sie ein festes Segment als Anlaufpunkt für Ihre Route aus Ausfall- oder anderen Routen

natürlich zu unterscheiden verwenden sollten in Aktion Verfahren in Protokoll müssen Sie

return RedirectToRoutePermanent("RouteName", new { username = "UserName", 
                action = "Index", 
                controller = "Home", 
                id="userId" 
               } 
           ); 
// remember id is not required for that route as mentioned in global file 

dieses Beispiel auf diese neue Route umleiten wird Ihre Seite umleiten url

www.appname.com/FixedUrlSegment/loggedusername/home/index/loggeduserid

Verwandte Themen