2

クエリ文字列パラメーターとしてリダイレクト URL を送信する必要があります。残念ながら、この URL には次のように複数のクエリ文字列パラメーターが含まれています。

"http://host:port/page2.aspx?param1=値¶m2=値¶m3=値"

問題は、この URL をエンコードして querystring 経由で送信すると、エンコードされていないように見えるため、アプリケーションはリダイレクト URL パラメーターの値が

"http://host:port/page2.aspx?param1=値"

そして考える

"¶m2=値¶m3=値"

現在の URL の一部として

私は試しServer.UrlEncode てみましたServer.HtmlEncode

4

3 に答える 3

2
string myUrl = “http://host:port/page2.aspx?param1=value&param2=value&param3=value”;

string EncodedUrl = myUrl.EncodeTo64();

これをクエリ文字列として渡し、次を使用して取得します。

    EncodedUrl.DecodeFrom64();

機能:

public static string EncodeTo64(this string target)
    {

        byte[] toEncodeAsBytes

              = System.Text.ASCIIEncoding.ASCII.GetBytes(target);

        string returnValue

              = System.Convert.ToBase64String(toEncodeAsBytes);

        return returnValue;

    }

public static string DecodeFrom64(this string target)
    {

        byte[] encodedDataAsBytes

            = System.Convert.FromBase64String(target);

        string returnValue =

           System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);

        return returnValue;

    }
于 2012-12-02T15:43:44.183 に答える
0

URL の「&」を「%26」に置き換えるか、Server.UrlEncode を使用してください

Responsse.redirect("redirectURL?a='http://url2?a=5%26b=7'&b=9'");
 or
Responsse.redirect("redirectURL?a="+Server.UrlEncode("http://url2?a=5&b=7")+"&b=9'");
于 2012-12-02T16:18:14.837 に答える
0

URL をエンコードする

System.Web.HttpUtility.UrlEncode(string url)
于 2012-12-02T16:19:57.817 に答える