Согласно вашему описанию, я предлагаю вам попробовать использовать настраиваемый фильтр для достижения ваших требований.
Вы можете создать глобальный фильтр действий для проверки значения OKobejctResult, если значение равно null, тогда вы можете изменить результат контекста.
Подробнее, вы можете обратиться к кодам ниже:
Создать класс фильтра:
public class TestActionFilter : IActionFilter
{
public void OnActionExecuted(ActionExecutedContext context)
{
if (context.Result.GetType() == typeof(OkObjectResult))
{
if (((OkObjectResult)context.Result).Value == null)
{
context.Result = new NotFoundResult();
}
}
}
public void OnActionExecuting(ActionExecutingContext context)
{
//throw new NotImplementedException();
}
}
Зарегистрируйте его в методе ConfigureServices startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers(options => options.Filters.Add(typeof(TestActionFilter)));
}
Тогда все будет хорошо.
Действие моего тестового контроллера:
[HttpPost]
public IActionResult CreateImage(string base64image)
{
WeatherForecast ew = null;
return Ok(ew);
}
Результат:
введите описание изображения здесь