ASP.net ядро ​​обрабатывает пользовательскую страницу ошибок с контроллерами API - PullRequest
1 голос
/ 13 марта 2019

У меня есть веб-приложение, написанное на ядре ASP.net 2.2.Это приложение состоит из двух частей:

  1. MVC - служат HTML-файлы.
  2. 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();
    }
});

Ожидается:

  1. Контроллер MVC будет возвращать пользовательские страницы ошибок
  2. Контроллер API будет возвращать именно то, для чего они кодированы.Нет HTML.

Факт:

  1. MVC - возвращать пользовательские страницы ошибок.
  2. API - возвращать пользовательские страницы ошибок.

Когда я выставляю API-интерфейсы под этим приложением, я не хочу возвращать пользовательский 404 HTML через каждые 404 кода состояния.Потребителю API это не нужно.

Как это решить?

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