Entfernen Spezifische Routen aus ASP.NET 4 RoutesTable
-
09-10-2019 - |
Frage
meine Seite hat viele viele Routen. da die Benutzer können Seiten nach Belieben hinzufügen oder entfernen, ich brauche eine Möglichkeit, die Routen von Zeit zu Zeit
neu registrierenbei reregister ich mag nicht die ganze Strecke Cache löschen ( „RouteTable.Routes.Clear“), aber ich würde eher gehen durch den Tisch einzelne Strecke und unter Verwendung eine bestimmte Regex auf seinem Namen, entscheiden, ob zu entfernen oder nicht.
Danach habe ich die spezifischen Seiten neu registrieren, die ich brauche, um
Heres meinen Code mittlerweile
For Each r In RouteTable.Routes
If CType(r, Route).DataTokens("ConfigID") = ConfigID Then RouteTable.Routes.Remove(r)
Next
nach dem ersten Entfernen wirft er einen Fehler „Collection modifiziert wurde;. Enumerationsvorgang nicht ausführen kann“
Vielen Dank für Ihre Hilfe !!
Lösung
Es ist nicht möglich, die Route Namen der Route zu erhalten, weil der Name nicht eine Eigenschaft der Strecke ist. Beim Hinzufügen von Routen zum Routetable wird der Name als internen Index für die Route verwendet und es ist nie ausgesetzt.
Es gibt eine Möglichkeit, dies zu tun.
- Wenn Sie eine Route registrieren, stellen Sie einen DataToken auf der Strecke mit dem Routennamen und verwenden, die auf Filterwege.
Der einfachste Weg 1 # zu tun ist, wahrscheinlich Ihre eigenen Erweiterungsmethoden für die Zuordnung von Routen zu schreiben.