【发布时间】:2010-04-16 03:07:27
【问题描述】:
我在 IIS6 中设置了自定义 404 错误页面。在代码隐藏中,我想从错误的 URL 获取参数,我该怎么做?
【问题讨论】:
我在 IIS6 中设置了自定义 404 错误页面。在代码隐藏中,我想从错误的 URL 获取参数,我该怎么做?
【问题讨论】:
我猜你可能会使用
Request.ServerVariables("HTTP_REFERER");
在您的自定义错误页面中以从重定向的位置获取。如果你得到页面那么你也可以得到查询字符串参数。
希望对你有帮助
【讨论】:
您可能需要考虑“接受”您提出的所有问题的正确答案(请参阅有关此网站如何自我管理的常见问题解答。)希望我的回答是其中之一:
您可以在 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.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];
}
}
【讨论】: