Как сохранить параметры в URL при записи пользовательской страницы ошибки 404? - PullRequest
3 голосов
/ 16 апреля 2010

Я установил пользовательскую страницу ошибки 404 в IIS6. В коде позади я хочу получить параметры от неправильного URL, как мне это сделать?

Ответы [ 3 ]

1 голос
/ 20 апреля 2010

Полагаю, вы могли бы использовать

Request.ServerVariables("HTTP_REFERER");

на вашей странице ошибки, чтобы получить, откуда она была перенаправлена. Если вы получили страницу, вы также можете получить параметры строки запроса.

надеюсь, это поможет

0 голосов
/ 20 апреля 2010

На своей странице 404 проверьте Request.Url.Query. Строка запроса должна иметь вид: 404; здесь идет старый запрос URL.

раздели 404; и создайте новый объект Uri с этими данными.

Например:

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];
    }
}
0 голосов
/ 16 апреля 2010

Возможно, вы захотите принять «правильные» ответы на все вопросы, которые вы задали (см. Часто задаваемые вопросы о том, как этот сайт управляет собой.) Надеюсь, мой ответ один из них:

Вы можете получить это значение в Global.asax в обработчике Application_OnError:

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

Или обрабатывать каждое из значений QueryString отдельно через QueryString.Keys [] и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...