gpt4 book ai didi

asp.net-mvc-4 - ASP.NET Web API 和 Null 响应的状态代码

转载 作者:行者123 更新时间:2023-12-03 07:34:53 25 4
gpt4 key购买 nike

如果服务层未找到请求的资源,则向 Web API Controller 返回 null;将 HttpStatusCode.NotFound 响应抛出回客户端而不用在 Controller 中进行硬编码并检查它是否为 null 的最佳方法是什么?

最佳答案

就我个人而言,我只会根据反对派的评论在 Controller 中进行检查,但您的要求是完全合理的。再次使用每个 Controller 附加的操作过滤器(或全局注册),您可以按照以下方式执行操作:

示例模型:

public class Foo
{
public string Bar { get; set; }
}

示例 Controller :

public class FoosController : ApiController
{
[NullObjectActionFilter]
public Foo Get(string id)
{
// - Returns model and 200
//return new Foo() { Bar = "TEST" };

// - Returns 404
//return null;
}
}

过滤器:

public class NullObjectActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
object outValue = null;
actionExecutedContext.Response.TryGetContentValue<object>(out outValue);
if (outValue == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}

base.OnActionExecuted(actionExecutedContext);

}
}

关于asp.net-mvc-4 - ASP.NET Web API 和 Null 响应的状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12592456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com