我的Web API 2项目存在一些问题。
为了连接到移动应用客户端,我需要以这种方式提供自定义成功/错误对象:
产品(GET)
我怎样才能以一种好的方式做到这一点? 使用 JsonResult 还是有更好的方法?
答案 0 :(得分:1)
我会这样做:
public class CustomErrorObject
{
public string ErrorCode { get; set; }
public string ErrorDescription { get; set; }
}
public class HandleApiExceptionAttribute : ExceptionFilterAttribute
{
public override void OnException(System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)
{
base.OnException(actionExecutedContext);
HttpRequestMessage request = actionExecutedContext.ActionContext.Request;
CustomErrorObject response = new CustomErrorObject();
response.ErrorCode = actionExecutedContext.Exception.Data("Text");
response.ErrorDescription = actionExecutedContext.Exception.Data("Detail");
actionExecutedContext.Response = request.CreateResponse(HttpStatusCode.BadRequest, response);
}
}
然后在Global.asax中将此行添加到Application_Start事件:
GlobalConfiguration.Configuration.Filters.Add(new HandleApiExceptionAttribute())