Dans ASP.NET MVC 2 - Comment puis-je obtenir l'Itinéraire des Valeurs dans ma manette de navigation afin que je puisse mettre en évidence le lien actuel?

Que j'essaie de faire le Trajet en cours dans ma manette de navigation pour que je puisse exécuter des comparaisons, dans le menu de navigation, les données sont remplies.

Mes Liens de l'objet est comme ceci:

public class StreamNavLinks
{
    public string Text { get; set; }
    public RouteValueDictionary RouteValues { get; set; }
    public bool IsSelected { get; set; }
}

Dans la page principale, je suis en train de passer à l'itinéraire actuel de la valeur liquidative contrôleur comme ceci:

<% Html.RenderAction(
    "MenuOfStreamEntries", //action
    "Nav", //controller
    new { //parameters for action
        currentStreamUrl = "Blog", 
        currentRoute = ViewContext.RouteData } //get route data to compare in controller
); %>

Le problème que je suis en cours d'exécution, c'est que je ne peux pas comprendre comment obtenir les données de currentRoute. Quelle est la meilleure technique pour obtenir les valeurs ou currentRoute?

J'ai essayé la syntaxe ressemble à ceci:

 currentRoute.Values.routevaluename

et

 currentRoute.Values[0]

Mais je n'arrive pas à le faire fonctionner.

Modifier

J'ai aussi essayé de placer ce code dans l'action de la manette de navigation:

var current = RouteData["streamUrl"];

et

var current = this.RouteData["streamUrl"];

Les deux versions me donner ce message d'erreur:

Erreur 1 Ne peut pas appliquer l'indexation [] à une expression de > " type de Système.Web.Le routage.RouteData' C:\pathtocontroller\NavController.cs 25 27

Edit 2

Il est également utile de connaître la route des valeurs que j'essaie de match contre:

        routes.MapRoute(null, "", //Only matches the empty URL (i.e. ~/)
                        new
                        {
                            controller = "Stream",
                            action = "Entry",
                            streamUrl = "Pages",
                            entryUrl = "HomePage"
                        }
        );

        routes.MapRoute(null, "{streamUrl}/{entryUrl}", //matches ~/Pages/HomePage
                        new { controller = "Stream", action = "Entry" }
        );

Donc, en fin de compte mydomain.com/blog/blogentry1 serait carte à la même contrôleur/action mydomain.com/pages/welcome. Je ne suis pas à la recherche pour le contrôleur de la valeur ou de la valeur de l'action, plutôt que je suis à la recherche d'streamUrl valeur et EntryUrl valeur.

OriginalL'auteur quakkels | 2010-09-07