質問

新しいASP.NETルーティングは、単純なパススタイルのURLに最適ですが、次のようなURLを使用する場合は

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

catch allパラメーターを検証で使用する必要がありますか?

役に立ちましたか?

解決

ルートにリストされていないすべてのビューデータ項目は自動的にクエリ文字列にマップされるため、「quotes / search.xhtml」をマップすると、アクションへ:

Search(string term, int page)

次に、探している結果が表示されます。

他のヒント

クエリ文字列パラメーターとルートを一致させることもできます。パラメーターを追加するために必要なものをすべてキャプチャする場合は、次のようにします。

{* contentUrl}

残りのURLをその変数に設定します。

また、エンコードされたURLをルートパラメーターとしてルートに渡すのに問題がありました。

URLでURLエンコードされた文字を使用することはできませんが、クエリ文字列では使用できます。

したがって、ルートにもクエリ文字列要素を含める必要がありました。

ルートがあるとしましょう:

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

しかし、私はそれを次の形式で欲しい:

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

これを行うことができます:

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)

これにより、次のURLにリダイレクトされます。

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

引き続き Request.QueryString [" some_value"];

を使用できます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top