我有一个页面,我希望将查询字符串中的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()条带化 或者我必须使用会话变量??
答案 0 :(得分:4)
您需要对其进行编码以进行网址格式设置,例如使用HttpServerUtility.UrlEncode()
,例如:
var encodedCertID = Server.UrlEncode(CertificateTextBox.Text);
Response.Redirect("~/Account/Login.aspx?CertificateID="+ encodedCertID);