Ich habe das folgende Problem. Ich habe MVC SiteMap eingerichtet, aber es gibt einen Knoten, den ich den Parameter speichern (beibehalten) muss. Technisch gesehen ist das Problem erklärt:MVC SiteMap übergeordnete Parameter nicht beibehalten
Ich habe Route: Agent/Prüflisten/Vorlagen, von dort ich bestimmte Vorlage am Öffnen Agent/Checklisten/EditTemplate/1 (wobei 1 die id) dann von dort: Ich bin Öffnung Seite, der Agent/Prozesse/hinzufügen
In der letzten Seite ist habe ich die Brotkrumen-: Vorlagen> Vorlage bearbeiten> Add-Prozess
Und jetzt will ich, wenn ich auf Vorlage bearbeiten klicken, um mich an den Agenten weitergeleitet/Checklisten/EditTemplate/1
Ich habe versucht, SiteMapPreserveRouteData Decorator auf die Aktion zu setzen, aber sie sagt, dass sie veraltet ist.
Hier ist meine Mvc.sitemap
<mvcSiteMapNode title="Templates" controller="Checklists" action="Templates" area ="Agent">
<mvcSiteMapNode title="Edit Template" controller="Checklists" action="EditTemplate" area="Agent" preservedRouteParameters="id">
<mvcSiteMapNode title="Add Process" controller="Processes" action="Add" area="Agent" preservedRouteParameters="id, id" />
<mvcSiteMapNode title="Process Configuration" controller="Processes" action="Edit" area="Agent" preservedRouteParameters="token" />
</mvcSiteMapNode>
</mvcSiteMapNode>
Dank
Nach einigem Lesen der Dokumentation habe ich verstanden, wie conservedRouteParameters funktionieren. Aber wir haben dieses System, bei dem Eltern eine ID und der Kindknoten eine andere ID hat. Dann kam es mir in den Sinn, benutzerdefinierte Attribute zu speichern und die SiteMapNodeModel.cshtml zu überschreiben, um die URL korrekt zu erstellen, aber kein Glück, es merkt sich die Attribute für die aktuelle Anfrage, aber wenn ich in das Kind gehe, sind die Attribute für die Eltern verloren. Ich muss zugeben, dass ich mit den Funktionen, die in dieser Funktion zur Verfügung stehen, nicht zufrieden bin, da ich nur einen Stapel benötige, auf dem genau die Routen genannt werden. –
Es gibt nichts, was Sie daran hindert, preservedRouteParameters zu löschen und nur einen Knoten für jeden Wert hinzuzufügen (das Standardverhalten), weshalb ich dynamische Knotenanbieter erwähnt habe. conservedRouteParamters funktioniert nur unter bestimmten Bedingungen - einer davon ist, dass die gesamte Herkunft nicht den gleichen Routenschlüssel duplizieren darf. Es skaliert besser, wenn Sie CRUD-Operationen durchführen, hat aber viel weniger Flexibilität. – NightOwl888
Hmm, die Geschäftssituation ist die folgende: Ich öffne ein Template mit einer ID, und von dort aus öffne ich einen Prozess mit einem Token (anders als das Template Token). Auch habe ich die folgende Situation: Person Datei> Beschäftigung> Job> Beenden Job wo alle von ihnen ID-Parameter haben und ich sehe keine mögliche Option, um dies zu lösen. So schaue ich auf dein dynamisches Beispiel, aber das löst mich nur eine Ebene ich denke. Und ich habe viele Stellen im System, wo ich das erreichen müsste, also wird es statisch geschrieben. –