从应用程序服务返回不同的HTTP状态代码

时间:2019-05-07 12:47:33

标签: aspnetboilerplate

我正在使用ASP.NET Boilerplate框架,并且创建了一个自定义应用程序服务,该服务继承自AsyncCrudAppServiceBase,并且覆盖了Get函数。

public override async Task<ExampleDto> Get(EntityDto<int> input)
{
    var example = await Repository.GetAll().FirstOrDefault(x => x.Id == input.Id);

    return ObjectMapper.Map<ExampleDto>(example);
}

但是,由于我使用的是FirstOrDefault(如果记录不存在),它将返回null,并且HTTP Status是200,而不是我想要的404。

如果我将LINQ函数更改为First或理想情况下更改为Single,则抛出异常,但HTTP状态为500。

我可以检查记录是否存在,但是如何从应用程序服务返回不同的HTTP状态?

1 个答案:

答案 0 :(得分:1)