2017-01-12 2 views
1

Ich habe folgende Routings in meinem RoutingConfig.csMVC Routing Problem mit dem gleichen Parameter verschiedenen Namen

 routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

     // Not working why? 
     routes.MapRoute(
      name: "AdminLoginRequestUrl", 
      url: "{controller}/{action}/{requestUrl}", 
      defaults: new { controller = "Admin", action = "Login", requestUrl= UrlParameter.Optional } 
     ); 

Das Problem ist, dass das zweite Routing nicht funktioniert Was vermisse ich hier? hat jemand irgendwelche Tipps oder Ideen MVC ist ein neues für mich

Antwort

1

Sie können nicht verschiedene Route nur durch Differenzieren von Parameternamen, beide Route vorhanden ähnliche. Verschieben Sie Ihre benutzerdefinierte Route auch über die Standardroute. Sie können versuchen, diese

routes.MapRoute(
     name: "AdminLoginRequestUrl", 
     url: "{controller}/{action}/route2/{requestUrl}", 
     defaults: new { controller = "Admin", action = "Login", requestUrl= UrlParameter.Optional } 
    ); 

    routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

Sie etwas insted route2 zu unterscheiden von Standardroute

+0

Was hat route2 sein muss? Entschuldigung, ich bin neu in MVC –

+0

alles, was Sie verwenden möchten, um von der Standardeinstellung zu unterscheiden – Mostafiz

+0

Nur ein param ??? –

0

Sie nicht Ihren Router von Variablennamen verwenden können, unterscheiden können. Sie können spezifischere Route wie folgt erstellen:

routes.MapRoute(
     name: "AdminLoginRequestUrl", 
     url: "Admin/{action}/{requestUrl}", 
     defaults: new { controller = "Admin", action = "Login", requestUrl= UrlParameter.Optional } 
    ); 

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

Beachten Sie, dass die Reihenfolge der Registrierung von Bedeutung ist.

Oder Sie können Ihre Parameter in etwas umbenennen, das für beide Controller geeignet ist und das verwenden.

Verwandte Themen