Обработка ошибок ASP.NET MVC 404 [дубликат]

В основном я предпочитаю многоуровневую архитектуру с пружинной загрузкой, поэтому с двумя разными слоями для Configuration и model, например

package app.config

@Configuration
public class MyDataConfig {

// factory method
@Bean
public static MyData loadMyData(ResourceLoader resourceLoader) throws IOException {
    try (InputStream input = resourceLoader.getResource("classpath:data.json").getInputStream()) {
        return new ObjectMapper().readValue(input, MyData.class);
    } 
 }

}

пакет com.model

public class MyData {

// data structure
private Map<String, DataDetail> details;

    // ...
}
129
задан Community 23 May 2017 в 12:10
поделиться

4 ответа

Еще одно решение.

Добавьте ErrorControllers или статическую страницу к с 404 информацией об ошибке.

Измените свой web.config (в случае контроллера).

<system.web>
    <customErrors mode="On" >
       <error statusCode="404" redirect="~/Errors/Error404" />
    </customErrors>
</system.web>

Или в случае статической страницы

<system.web>
    <customErrors mode="On" >
        <error statusCode="404" redirect="~/Static404.html" />
    </customErrors>
</system.web>

Это обработает и пропущенные маршруты и пропущенные действия.

142
ответ дан 24 November 2019 в 00:26
поделиться

Похож это - лучший способ поймать все.

Как я могу правильно обработать 404 в ASP.NET MVC?

4
ответ дан 24 November 2019 в 00:26
поделиться

То, что я могу рекомендовать, должно считать FilterAttribute. Например, MVC уже имеет HandleErrorAttribute. Можно настроить его для обработки только 404. Ответ, если Вы заинтересованы, я посмотрю пример.

BTW

Решение (с последним маршрутом), что Вы приняли в предыдущем вопросе, не работает в большой части ситуаций. Второе решение с HandleUnknownAction будет работать, но требовать, чтобы внести это изменение в каждом контроллере или иметь единственный основной контроллер.

Моим выбором является решение с HandleUnknownAction.

1
ответ дан 24 November 2019 в 00:26
поделиться

В IIS можно указать перенаправление к "определенной" странице на основе кода ошибки. В Вас пример можно настроить 404-> специализированные 404 ошибочных страницы.

1
ответ дан 24 November 2019 в 00:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: