ASP.net MVC de routage avec en option le premier paramètre

J'ai besoin de fournir des fonctionnalités suivantes pour l'un de ces sites web.

http://www.example.com/[sponsor]/{controller}/{action}

Selon le [sponsor], la page web doit être personnalisé.

J'ai essayé la combinaison d'inscrire les itinéraires avec Application_Start et Session_Start, mais pas en mesure de le faire fonctionner.

public static void RegisterRoutes(RouteCollection routes, string sponsor)
{
        if (routes[sponsor] == null)
    {
      routes.MapRoute(
     sponsor, //Route name
     sponsor + "/{controller}/{action}/{id}", //URL with parameters
     new { controller = "Home", action = "Index", id = UrlParameter.Optional } //Parameter defaults
     );
    }
}

Aussi, le comportement par défaut sans [sponsor] devrait également fonctionner.
Quelqu'un peut s'il vous plaît laissez-moi savoir si il est techniquement possible d'avoir une option de premier paramètre de la MVC3 URL. Si oui, veuillez nous faire part de la mise en œuvre. Merci.


Mise À Jour Du Code
Après avoir fait les modifications suggérées par Sergey Kudriavtsev, le code fonctionne que lorsque la valeur est donnée.
Si aucun nom n'est fourni, MVC ne pas passer à l'action de contrôleur.

Notez que cela ne fonctionne que pour le contrôleur de la maison (à la fois et non-sponsor). Pour d'autres contrôleurs/actions, même si le commanditaire paramètre est spécifié, il n'est pas de routage.

Veuillez indiquer ce qui doit être modifié.

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
             "SponsorRoute",
             "{sponsor}/{controller}/{action}/{id}", //URL with parameters
             new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

        routes.MapRoute(
            "NonSponsorRoute",
            "{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = UrlParameter.Optional, sponsor = string.Empty }
        );
    }

Méthode D'Action

public ActionResult Index(string sponsor)
    {
    }

OriginalL'auteur Sandeep G B | 2011-11-29