У меня есть веб-приложение, написанное на ядре ASP.net 2.2.Это приложение состоит из двух частей:
- MVC - служат HTML-файлы.
- API - предоставляет API для угловых приложений.
Я читал эту статью и обнаружил, что могу сделать это следующим образом:
app.Use(async (ctx, next) =>
{
await next();
if(ctx.Response.StatusCode == 404 && !ctx.Response.HasStarted)
{
//Re-execute the request so the user gets the error page
string originalPath = ctx.Request.Path.Value;
ctx.Items["originalPath"] = originalPath;
ctx.Request.Path = "/error/404";
await next();
}
});
Ожидается:
- Контроллер MVC будет возвращать пользовательские страницы ошибок
- Контроллер API будет возвращать именно то, для чего они кодированы.Нет HTML.
Факт:
- MVC - возвращать пользовательские страницы ошибок.
- API - возвращать пользовательские страницы ошибок.
Когда я выставляю API-интерфейсы под этим приложением, я не хочу возвращать пользовательский 404 HTML через каждые 404 кода состояния.Потребителю API это не нужно.
Как это решить?