asp.net webforms-routing: optionale Parameter
Möchte ich hinzufügen, optionale Parameter in meiner routing-Tabelle.
Ich zum Beispiel möchte, dass der Benutzer durchsuchen, ein Produkt-Katalog wie dieser:
http://www.domain.com/browse/by-category/electronics/1,2,3 etc
Nun habe ich eine route wie diese:
routes.MapPageRoute(
"ProductsBrowse",
"browse/{BrowseBy}/{Category}",
"~/Pages/Products/Browse.aspx"
);
Problem ist aber, dass, wenn ein Benutzer http://www.domain.com/browse , ich möchte Ihnen präsentieren eine andere Seite, wo Sie können wählen Sie die Art und Weise, wie durchsuchen. Damit der Parameter {BrowseBy} und {Kategorie} nicht verwendet werden.
Gibt es eine Möglichkeit, um dieses dann erstellen Sie separate Routen für die verschiedenen Szenarien?
Vielen Dank für Ihre Zeit!
Mit freundlichen GRÜßEN,
Daneben
- bitte Lesen Sie meine Antwort, die zeigt, wie dies mit einer route.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde nur zu erstellen, die separate route.
Sagte, könnten Sie eine benutzerdefinierte RouteHandler, dass, basierend auf einigen übereinkommen, die Sie definieren, automatisch senden Sie diesen speziellen Fällen, wie wenn Sie hatte eine andere route.
Alternativ können Sie die Verwendung der benutzerdefinierten RouteHandler zusammen mit einem übereinkommen, zu vermeiden, geben Sie die spezifische Seite, die Ihre Routen. Das entspricht in etwa dem, was asp.net MVC bedeutet.
Ich kam gerade über diese Frage, und wusste, es musste Weg, dies zu tun. Es ist-
MapPageRoute
hat eine überladung, können Sie angeben, standardmäßig. hier ist eine Beispiel-Anwendung basiert auf code:So, wenn der Benutzer nicht geben Sie eine Kategorie dieser Strecke noch getroffen werden. Das problem habe ich mit mit zwei getrennten Routen ist, dass ich links setup um meine Website, die generiert werden durch route-Namen, und Sie können nicht zwei Routen, die den gleichen Namen haben.
Hier ist eine gute Dokumentation aus dem MSDN: hier
versuchen Sie dies: