我正在对 url 中的参数进行编码,并将 a 标签的 href 设置如下:
href="javascript:var win=window.open('LayerPreview.aspx?tLNUMCswKSXpnGpQy1rWev26c5euEUa97eqiZYdDpMvDcKNbi6Z05Q3WC5DhG%2b8HJFGHAo%2fHiSFrtEEsHiConkpaT2aJ2WV0Hxxqo2l1bmkNdAotVVvI%2fT4JtE%2fc3dJ8MEAhM3NJZ15qk3fkW87q9A%3d%3d','','width=800,height=600,resizable=no','true');"
但是点击链接的时候,在LayerPreview.aspx的Page_Load中,查询字符串已经被修改了,即原来的:
tLNUMCswKSXpnGpQy1rWev26c5euEUa97eqiZYdDpMvDcKNbi6Z05Q3WC5DhG%2b8HJFGHAo%2fHiSFrtEEsHiConkpaT2aJ2WV0Hxxqo2l1bmkNdAotVVvI%2fT4JtE%2fc3dJ8MEAhM3NJZ15qk3fkW87q9A%3d%3d'
变成:
tLNUMCswKSXpnGpQy1rWev26c5euEUa97eqiZYdDpMvDcKNbi6Z05Q3WC5DhG+8HJFGHAo%2fHiSFrtEEsHiConkpaT2aJ2WV0Hxxqo2l1bmkNdAotVVvI%2fT4JtE%2fc3dJ8MEAhM3NJZ15qk3fkW87q9A=%3d
显然,这搞砸了我的解码。
有任何想法吗?
谢谢,
卡尔。
编辑:我已经在使用 System.Web.HttpUtility.UrlEncode 和 System.Web.HttpUtility.Decode。
这是操作:
- 生成纯文本查询字符串。
- 加密查询字符串。
- 通过 System.Web.HttpUtility.UrlEncode 运行它。
在读取查询字符串时,我只是做相反的事情:
- 通过 System.Web.HttpUtility.UrlDecode 运行它。
- 解密查询字符串。
- 读取查询字符串。
这在我的网络应用程序中的其他任何地方都有效,但在为 window.open url 或任何其他 javascript 方法分配链接时无效。