Request.QueryString []包含'+'

时间:2010-07-31 12:22:02

标签: asp.net encoding query-string

我有一个页面,我希望将查询字符串中的ID传递给另一个页面

例如

Response.Redirect(“〜/ Account / Login.aspx?CertificateID =”+ CertificateTextBox.Text);

但CertificateTextBox中的值格式为Encoding.UTF8

所以它可以包含像“ZnbiS69F2g22OeupHw + Xlg ==”这样的字符

当接收页面获得QueryString

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

“+”以及可能的其他查询字符如“?”被剥夺了!!

所以我最终得到了

Request.QueryString["CertificateID"];

返回

“ZnbiS69F2g22OeupHw Xlg ==”

“+”strinpped!

有没有办法对这些字符进行编码,因此它们不会被QuesryString()条带化 或者我必须使用会话变量??

1 个答案:

答案 0 :(得分:4)

您需要对其进行编码以进行网址格式设置,例如使用HttpServerUtility.UrlEncode(),例如:

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