asp.net - 包含 '+' 的 Request.QueryString[]

标签 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==”

“+”被去掉了!

有没有办法对这些字符进行编码,这样它们就不会被 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/

相关文章:

c# - 如何禁用回发或编码查询字符串 ASP.NET

asp.net - "Characters Numbers"的正则表达式

c - c 中的编码和解码文本

java - 浏览器自动检测 utf-8,希伯来语

java - jsp中重音字符的问题

asp.net-mvc - 在asp.net-mvc中,查询字符串太长会导致404文件未找到错误吗?

elasticsearch - Elasticsearch-带通配符的query_string

asp.net - UpdatePanel部分回发后如何保留javascript

asp.net - 我应该花精力实现 knockoutjs 还是研究 jQuery Data Link

wordpress - 查询字符串正在破坏 SSL?