Я хочу предоставить пользовательский ответ для всех 404 в нашем API. Например:Пользовательская модель ответа 404
{
"message": "The requested resource does not exist. Please visit our documentation.."
}
Я считаю, что следующий результат работы фильтра для всех случаев в трубопроводе MVC:
public class NotFoundResultFilter : ResultFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext context)
{
var result = context.Result as NotFoundResult;
if (result != null)
{
context.Result = new HttpNotFoundResult(); // My custom 404 result object
}
}
}
Но, когда URL просил не совпадать с маршрутом действий, выше фильтр не удар. Как я могу лучше всего перехватить эти 404 ответа? Для этого потребуется промежуточное ПО?
Спасибо! Я не считаю, что промежуточное ПО может работать так, потому что HttpContext не имеет свойства Result. Я считаю, что UseStatusCodePages() может не подойти, поскольку я хочу вернуть JSON. – davenewza
Я обновил ответ – Set
Отлично работает с 404s. Я не могу заставить его работать с 401 или 403s при использовании промежуточного программного обеспечения JwtBearerAuthentication, но я подниму это на другой вопрос. – davenewza