我正在尝试通过ASP.NET WEb API调用返回带有json数据的对象。
我想以表格形式返回数据IHttpActionResult
{
"message": "success",
"statuscode": "SuccessCode",
"statusmessage": "SuccessMsg",
"data": [
{
"corrBD1": null,
"flagType1": null,
"status1": null,
"mstrRep1": null,
"repname1": null,
"nameAccount1": null,
"acDate1": "0001-01-01T00:00:00",
"preAddress1": null,
"currAddress1": null
}]
}
我可以通过有效的GET请求返回以下数据:
return OK(employee);
但是当发生异常时,我需要以相同的形式返回数据
{
"message": "fail",
"statuscode": "400",
"statusmessage": "failmsg",
"data": null
}
但是异常过滤器迫使我以HttpResponseMessage
(不幸的是无法以所需的形式返回)的形式发送响应,该如何完成呢?
如果我对问题的理解正确,那么无论您是在控制器中还是在异常过滤器中处理响应,您都只是在尝试在结果中使用一致的消息语法。您应该可以通过创建自己的IHttpActionResult来执行所需的操作:
private class MyResult : IHttpActionResult
{
public HttpRequestMessage Request { get; set; }
public string Content { get; set; }
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
HttpResponseMessage response =
new HttpResponseMessage(HttpStatusCode.InternalServerError); // or whatever
response.Content = new StringContent(Content); // your content here
response.RequestMessage = Request;
return Task.FromResult(response);
}
}
在处理程序中,您只需设置ExceptionHandlerContext.Request
为上面创建的实例即可。这对您的情况有用吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句