Как перенаправить на предопределенную страницу ошибки? - PullRequest
0 голосов
/ 23 июля 2010

У меня есть настройки страницы ошибки в моем файле web.config, например:

<customErrors mode="RemoteOnly" defaultRedirect="ErrorDocs/500.htm">
    <error statusCode="404" redirect="ErrorDocs/404.htm"/>
    <error statusCode="403" redirect="ErrorDocs/403.htm"/>
</customErrors>

Существует ли простой способ перенаправления на страницу 404 без ввода ее имени? Пример: Response.Redirect (404 кодированная страница состояния); Или есть способ получить местоположение по умолчанию 404?

Ответы [ 3 ]

2 голосов
/ 23 июля 2010

Ну, вы можете , конечно, программно получить настройки из вашего файла web.config, если хотите - http://msdn.microsoft.com/en-us/library/system.configuration.configurationsectiongroup.aspx - грубый код:

    string my404Setting;

    // Get the application configuration file.
    System.Configuration.Configuration config =
        ConfigurationManager.OpenExeConfiguration(
        ConfigurationUserLevel.None);

    foreach (ConfigurationSectionGroup sectionGroup in config.SectionGroups)
    {
        if (sectionGroup.type == "customErrors" )
        {
            foreach (ConfigurationSections section in sectionGroup.Sections)
            {
               if (section.StatusCode = "404")
               {
                  my404Setting = section.Redirect;
                  break;
               }
            }
            break; 
        }
    }
}

Ужаснеетак и должно быть, но вот как бы вы прочитали, что хотите.

1 голос
/ 23 июля 2010

Из ответа здесь: Лучший способ реализовать 404 в ASP.NET

protected void Application_Error(object sender, EventArgs e){
  // An error has occured on a .Net page.
  var serverError = Server.GetLastError() as HttpException;

  if (null != serverError){
    int errorCode = serverError.GetHttpCode();

    if (404 == errorCode){
      Server.ClearError();
      Server.Transfer("/Errors/404.htm");
    }
  }
}
0 голосов
/ 23 июля 2010

Нет, к сожалению, эти пути работают только со статическими путями страниц.

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