Ich verwende den MvcSiteMapProvider von Ссылка , um einen Breadcrumb-Pfad für mein Projekt zu erstellen. Ich habe einige URLs, die eine ID benötigen, um an die aktuelle Information für den geeigneten Benutzer weitergegeben zu werden, z. http: // localhost: 52306 / Startseite / Benutzer? ID = 101101
Wenn ich weiter in die Sitemap navigiere (z. B. http: // localhost: 52306 / Home / Benutzer / Details? ID = 101101) und versuche, den Breadcrumb-Link zu verwenden, um mich zur Seite "User" zurück zu bringen, die ID Parameter ist verloren. Ich habe versucht, den Aktionsmethoden SiteMapPreserveRouteData-Attribute hinzuzufügen, aber sie scheinen nichts zu tun. Gibt es eine einfache Möglichkeit, um sicherzustellen, dass diese ID-Informationen erhalten bleiben? Ich dachte, das SiteMapPreserveRouteDataAttribute sollte dies tun, also gibt es etwas, das ich falsch mit dem Attribut mache? Meine Methode würde so aussehen:
%Vor%Lassen Sie es mich wissen, wenn Sie weitere Informationen von mir benötigen.
So wie ich es gemacht habe, habe ich Original mvc Site Map Helper Quelle für das Rendern von Breadcrumb, und änderte es zu handhaben Parameter (obwohl in meinem Projekt zeigen wir nur Parameter für die Filterung und erlauben Benutzer, auf sie zu klicken, um andere Filterparameter zu verlieren, ist unten sehr naive Implementierung von Knotentext, nur ein Beispiel, wie es gemacht werden kann):
%Vor%Auf dieselbe Weise können Sie SiteMapLink-Methoden anpassen, um Anforderungsparameter für den aktuellen Knoten aufzunehmen.
Gemäß diesem Thread in MVCSiteMapperProvider können Sie keine Abfragezeichenfolgen verwenden. Es ignoriert Abfragezeichenfolgen und verwendet nur Routendaten.
Abfragezeichenfolgen und MVCSiteMapper
Haben Sie darüber nachgedacht, neue Routen zu erstellen, statt die Abfragezeichenfolge zu verwenden?
Tags und Links asp.net-mvc-3 sitemap breadcrumbs sitemapprovider