我有一个页面,我希望将查询字符串中的 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==”
“+”被去掉了!
有没有办法对这些字符进行编码,这样它们就不会被 QuesryString() 条纹化 或者我必须使用 session 变量吗??
最佳答案
您需要对其进行编码以进行 URL 格式设置,例如使用 HttpServerUtility.UrlEncode()
,例如:
var encodedCertID = Server.UrlEncode(CertificateTextBox.Text);
Response.Redirect("~/Account/Login.aspx?CertificateID="+ encodedCertID);
关于asp.net - 包含 '+' 的 Request.QueryString[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3378068/