.Net defaultRedirect для конкретной страницы ошибки - PullRequest
1 голос
/ 01 октября 2010

У меня есть приложение веб-формы ASP.Net, которое использует функции глобализации .Net для доставки страниц .aspx в различные локали.У меня есть пользовательские ошибки, определенные как

 <customErrors mode="RemoteOnly" defaultRedirect="Error.htm">

. Я предпочитаю использовать страницу non.Net для defaultRedirect, чтобы предотвратить возможность бесконечных циклов, если сама страница ошибки генерирует ошибку, поэтому я настроил таргетинг настатическая .htm страница.Однако я хотел бы отобразить эту страницу в локали, которую первоначально запрашивал пользователь, где локаль определяется из строки запроса.

Каков наилучший способ сделать это?

У меня естьрассматривал эти варианты, но меня интересуют другие варианты:

  • Перенаправление на какое-то другое приложение / домен, который может запускать серверную логику для перенаправления или визуализации ответа, зависящего от локали (кажется избыточным)
  • Использование клиентского кода (JavaScript) для визуализации содержимого, зависящего от локали (однако, не работает для браузеров с отключенной поддержкой JavaScript, и я хотел бы, чтобы он работал и для этих пользователей)
  • Сделать так, чтобы на странице статических ошибок отображался текст на нескольких языках - показывать весь текст на одной странице (хотя я предпочитаю показывать текст только в одной локали)

Ответы [ 3 ]

1 голос
/ 31 марта 2011

Если в вашей файловой структуре проекта есть языковые папки, одним из решений является создание web.config , в котором в каждой языковой папке

указан только раздел <customErrors />.

Пример структуры проекта

  • App_Code
  • ...
  • ан-нас
    • ...
    • web.config
  • ан-гб
    • ...
    • web.config
  • ж-сп
    • ...
    • web.config
  • ...
  • Default.aspx
  • web.config
0 голосов
/ 13 апреля 2011

Я пришел к выводу, что, как правило, лучше всего следовать методу, описанному в ответе на следующий вопрос, переходить только на страницу .htm вместо страницы .aspx:

ASP.NET 2.0: рекомендации по написанию страницы с ошибками

0 голосов
/ 31 марта 2011

если вы можете создать динамическую страницу для информации об ошибках, заботясь о локализации и других вещах, я думаю, что это лучший способ.

Вы можете обрабатывать ошибки на global.asax наша разработка вашего httpmodule (оба способа верны), вы можете управлять ошибками приложения великолепным и динамичным способом, взяв под свой контроль весь процесс.

, включая определение текущего языка для принятия решения овозможное перенаправление или, например, отображение разных сообщений о различного рода ошибках.

По моему мнению, я начинаю решать проблему с помощью решения, которое дает мне гибкость, чтобы решить, как я могу обрабатывать в различных случаях.

...