1

次の形式のURLがあります。

http://www.mysite.com/login.aspx?ref=~/Module/MyPage.aspx?par=1&par2=hello&par3=7

ユーザーがログインする前のページに戻るために、そのコンテンツを使用します。ページのステータスも保持するには、のパラメーターがQueryString必要です。パラメータの数は、呼び出しとそのステータスによって異なります。RedirectQueryStringPageLogin

変数の後refにあるURLにすべてを格納したいとします。redirectURL私は試した:

 redirectURL = Request.QueryString("ref") // "~/Module/MyPage.aspx?par=1" 

後にすべてを取得しますが、 (含まれている)ref以降はすべて無視します。&私が使用する場合:

 redirectURL =Request.Url.Query // "ref=~/Module/MyPage.aspx?par=1&par2=hello&par3=7"

含まれているすべてを取得しますref。目標を達成するには、redirectURLから最初の4文字を削除するだけです。しかし、このソリューションは少し「強制的」であり、このタスクを実行するASP.NET関数が必要であると確信しています。

4

2 に答える 2

1

~/Module/MyPage.aspx?par=1&par2=hello&par3=7URLに渡す前に「」をエンコードすることを検討してください。

例えば。:

String MyURL = "http://www.mysite.com/login.aspx?ref=" + 
                Server.UrlEncode("~/Module/MyPage.aspx?par=1&par2=hello&par3=7");

次に、次を使用してredirectURLを取得できます。

String redirectURL = Request.QueryString("ref");
于 2012-11-06T14:59:37.350 に答える
1

URLの&sは、追加のクエリ文字列引数を作成しています。

refパラメータをクエリ文字列に入れる前に、パラメータの値をエスケープする必要があります。これにより、 s
がに置き換えられます。 これを行うには、を呼び出します。&%26
Uri.EscapeDataString()

からプロパティをフェッチするRequest.QueryStringと、自動的にデコードされます。

于 2012-11-06T15:00:04.133 に答える