Request.QueryString [], который содержит «+» - PullRequest
2 голосов
/ 31 июля 2010

У меня есть страница, на которой я хочу передать идентификатор в строке запроса на другую страницу

например

Response.Redirect ("~ / Account / Login.aspx? CertificateID =" + CertificateTextBox.Text);

но значение в CertificateTextBox имеет формат Encoding.UTF8

, поэтому он может содержать такой символ, как "ZnbiS69F2g22OeupHw + Xlg =="

Когда получающая страница получает QueryString

CertificateTextBox.Text = Request.QueryString["CertificateID"];

"+" и возможные другие символы строки запроса, такие как "?" раздеты !!

так что я получаю

Request.QueryString["CertificateID"];

возвращение

"ZnbiS69F2g22OeupHw Xlg =="

"+" натянул!

Есть ли способ кодировать эти символы, чтобы они не чередовались с помощью QuesryString () или я должен использовать переменную сеанса ??

1 Ответ

4 голосов
/ 31 июля 2010

Вам необходимо кодировать его для форматирования URL, например, используя HttpServerUtility.UrlEncode(), например:

var encodedCertID = Server.UrlEncode(CertificateTextBox.Text);
Response.Redirect("~/Account/Login.aspx?CertificateID="+ encodedCertID);
...