Лучший способ для клиентов asp.net MVC изображений - PullRequest
0 голосов
/ 06 января 2011

Я использую Asp.Net MVC для своей веб-страницы. И я пытаюсь показать пользовательские сообщения об ошибках моим посетителям моей веб-страницы, чтобы я добавил

    <customErrors mode="On" defaultRedirect="/Error" >
    </customErrors>

на мой web.config.

У меня есть контроллер ошибок с действием Index, который срабатывает при возникновении исключения на моей веб-странице.

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

Я думаю, что это не хорошее решение для ошибок. Поскольку браузер ожидает изображение, но ответом является веб-страница.

  • Вопрос 1. Я хочу отключить пользовательские ошибки для определенных типов файлов, но не знаю, как это сделать.

  • Вопрос 2 - Также, если есть ошибка, такая как 404 500 и т. Д., Я хочу видеть код ответа такой же с ошибкой.

Но с пользовательскими ошибками код ответа - 302. Я ожидаю увидеть реальный код ошибки.

Я нашел решение для моего первого вопроса, но я не знаю, что это лучшая практика Мои изображения находятся в папке «Изображения», поэтому я создаю специальную конфигурацию для папки «Изображения».

Я добавил эти строки в свой web.config

   <location path="Images">
    <system.web>
      <customErrors mode="Off"></customErrors>
    </system.web>
  </location>
  • Вопрос 3 - Это хорошее решение?

1 Ответ

0 голосов
/ 06 января 2011

Создайте HttpModule, который подписывается на событие Error. Проверьте StatusCode и, если его 404 (не найден), проверьте, какой файл был запрошен. Если это изображение, очистите Исключение и установите для StatusCode значение, отличное от 404, и вы не попадете на страницу customError.

О сохранении исходного кода состояния вы также можете сохранить его в HttpModule и установить его обратно в свой контроллер ошибок.

...