【问题标题】:How to keep parameters on URL when write a custom 404 error page?编写自定义 404 错误页面时如何在 URL 上保留参数?
【发布时间】:2010-04-16 03:07:27
【问题描述】:

我在 IIS6 中设置了自定义 404 错误页面。在代码隐藏中,我想从错误的 URL 获取参数,我该怎么做?

【问题讨论】:

    标签: asp.net iis-6


    【解决方案1】:

    我猜你可能会使用

    Request.ServerVariables("HTTP_REFERER");
    

    在您的自定义错误页面中以从重定向的位置获取。如果你得到页面那么你也可以得到查询字符串参数。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      您可能需要考虑“接受”您提出的所有问题的正确答案(请参阅有关此网站如何自我管理的常见问题解答。)希望我的回答是其中之一:

      您可以在 Application_OnError 处理程序的 Global.asax 中获取该值:

      void Application_Error(object sender, EventArgs e) 
      {
           string s = System.Web.HttpContext.Current.Request.QueryString.ToString();
      }
      

      或者通过QueryString.Keys[]等分别处理每个QueryString值

      【讨论】:

      • 当我在我的自定义 404 错误页面中调试时,我没有看到我想要在所有参数中获取的任何参数都包含在 Request 对象中。
      【解决方案3】:

      在您的自定义 404 页面中,检查 Request.Url.Query。 查询字符串应采用以下形式: 404;旧的请求地址在这里。

      去掉 404;部分,并使用此数据创建一个新的 Uri 对象。恭喜 - 您可以访问旧 url,并且可以轻松获取查询字符串参数 :)

      例如:

      var url = new Uri(HttpUtility.UrlDecode(Request.Url.Query));
      if (url.Query.Length > 0)
      {
          var parameters = url.Query.TrimStart('?').Split('&');
          foreach(var p in parameters)
          {
              var parts = p.Split(new[]{'='}, 2).Dump();
              var name = parts[0];
              var value = parts[1];
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-09
        • 2015-11-28
        • 2016-04-25
        • 2013-09-16
        • 2014-08-07
        • 1970-01-01
        • 2015-08-12
        • 2015-03-18
        相关资源
        最近更新 更多