如何在编写自定义404错误页面时保留URL上的参数?

时间:2010-04-16 03:07:27

标签: asp.net iis-6

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

3 个答案:

答案 0 :(得分:1)

我想你可以使用

Request.ServerVariables("HTTP_REFERER");

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

希望这会有所帮助

答案 1 :(得分:0)

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

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

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

或者通过QueryString.Keys []等单独处理每个QueryString值。

答案 2 :(得分:0)

在自定义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];
    }
}