Wie erhalte ich die vollständige Anforderungs-URL (einschließlich Abfragezeichenfolge) in meinem Controller? Ist es eine Frage der Verkettung meiner URL und Formularparameter oder gibt es einen besseren Weg.Vollständige Abfrage-URL, einschließlich der Parameter im Controller
Ich überprüfte this Frage, aber es scheint nicht für MVC anwendbar.
Korrigieren Sie mich, wenn ich falsch liege.
Einige ausführlichere Informationen:
Mein Aufruf an meinen SearchController.AdvancedSearch()
stammt aus einer Form mit etwa 15 optionalen Parametern. Wegen der Anzahl der Parameter und der Möglichkeit (optional), optionale Parameter sauber zu übergeben, entschied ich mich für eine Catchall-Zeichenfolge, die im Controller behandelt wird.
Jetzt möchte ich, dass mein Controller seinen Aufruf in einer Breadcrumb-Komponente speichert, so dass, wenn der Krümel angeklickt wird, das exakt gleiche Ergebnis abgerufen werden kann (mit allen, aber nicht mehr der Argumente). Um dies zu tun, brauche ich die gesamte Anfrage.URL, einschließlich der Querystring.
In Request.RawURL
, request.URL
etc ist diese Abfragezeichenfolge nicht enthalten. Tatsächlich mache ich gerade eine einfache Funktion.
String.Format("{0}/{1}", request.Url, request.form)
Das gibt mir einige seltsame Ergebnisse (wie send Knopfwerte etc), aber es funktioniert. Wenn es Vorschläge gibt, wie man dies weniger von einem hässlichen Hack macht, erzähle es bitte.
Ich weiß, wo die aktuelle Anfrage zu finden, aber ich kann nicht scheinen, irgendwo eine rohe URL zu finden. Sie sind alle von der Querystring beraubt und ich brauche das auch.
Mein Controller aktualisiert eine Sammlung von URLs in meiner BreadCrumb
Komponente. Daher benötigt es die Anforderungs-URL. Wie schlägst du vor, dass ich dieses Problem anwende?
Heh, danke für Ihre Antwort, obwohl diese Frage wie 2 Jahre alt ist;) In der Zwischenzeit zwei weitere Versionen von MVC herausgekommen sind und optionale Parameter durch das MVC-Framework unterstützt werden, wodurch das Problem strittig. –