×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

Try following code in Page_Load:

if (!IsPostBack)
{
string a = Request.QueryString.Get("a");
if (string.IsNullOrEmpty(a))
{
string url = HttpUtility.UrlDecode(Request.RawUrl);
if (url.IndexOf("?") > 0 && url.IndexOf("a=", url.IndexOf("?")) > 0)
{
Response.Redirect(url);
}
}
else
{
// Process the a
}
}
Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / 求助:ASP/ASP.NET: Request 对象 处理不了url encode: 具体见内
    1: 在浏览器敲 http://www.xxx.com/test.asp?a=b

    服务器端 ASP 代码 Request.queryString["a"] 的值能获取到。

    如果在URL 地址改成 http://www.xxx.com/test.asp?a%3Db 那么 Request.queryString["a"] 则为空。
    有什么办法能获取到
    • 如何在Html 文档中的URL 避免被第三方程序encode.
      我把做好的html 文档以附件形式发到Gmail 信箱, 打开Gmail 信箱点击View, 发现网页的链接被修改。
      • 我估计你download的话,附件是没有被修改的。
    • 这个。。。理解不太对吧。这个urlencode是用于encode你想pass的值,比如如果你想pass给 a 的值是 "=b", 那你得先把"=b" encode成 "%3Db"
      • 把"=b" encode成 "%3Db" 后, Request.queryString["b"]值为空
        • 用http://www.xxx.com/test.asp?a=%3Db 那么 Request.queryString["a"] 为"%3Db ", decode 后 就是 "=b"
          • +1.
    • Try following code in Page_Load:
      if (!IsPostBack)
      {
      string a = Request.QueryString.Get("a");
      if (string.IsNullOrEmpty(a))
      {
      string url = HttpUtility.UrlDecode(Request.RawUrl);
      if (url.IndexOf("?") > 0 && url.IndexOf("a=", url.IndexOf("?")) > 0)
      {
      Response.Redirect(url);
      }
      }
      else
      {
      // Process the a
      }
      }