Frage

Das neue ASP.NET-Routing ist für einfachen Weg Stil-URL, aber wenn Sie eine URL verwenden, wie:

http://example.com/items/search .xhtml? term = Text + zu + finden & page = 2

Müssen Sie mit einer Validierung einen Haken alle Parameter verwenden?

War es hilfreich?

Lösung

Alle Elemente, Ansichtsdaten, die nicht in der Route aufgeführt sind, werden auf die Abfragezeichenfolgeflag automatisch zugeordnet, wenn Sie also map „Produkte / search.xhtml“ auf eine Aktion:

Search(string term, int page)

Dann sollten Sie die Ergebnisse erhalten, die Sie suchen.

Andere Tipps

Sie können auch Abfragezeichenfolgeflag Parameter mit Routen anzeigen lassen, wenn Sie wollen einfach alles erfassen Sie wie so einen Parameter hinzufügen müssen:

{* contentURL}

, um den Rest der URL in diese Variable bevölkern.

Ich habe auch Probleme mit einer codierten URL zu einer Route als Routen Parameter.

Sie können keine URL-kodiert Zeichen in einer URL verwenden, aber Sie können in einer Abfrage-String.

Deshalb brauchte ich meine Route auch eine Abfrage-String-Element zu haben.

Sagen, ich habe eine Route:

MapPageRoute("myroute", "myroute/{x}", "~/routehander.aspx")

Aber ich will es in Form von:

http://mywebsite.com/myroute/{x}?url=myurl

Wir können dies tun:

Dim x as integer = 12
Dim rvd As New Routing.RouteValueDictionary
rvd.Add("x", x)
rvd.Add("url", Server.UrlEncode("/default.aspx"))
HttpContext.Current.ApplicationInstance.Response.RedirectToRoutePermanent("myroute", rvd)

Dies würde uns auf die folgende URL umleiten:

http://mywebsite.com/myroute/12?url=%252fdefault.aspx

Sie können nach wie vor verwenden Request.QueryString["some_value"];

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top