ASP.NETボイラープレートでカスタムHTTPステータスコード(4xxなど)を返す方法はありますか?カスタムAPIの応答ABPフレームワークを使用したHTTPステータスコード
私はカスタムのアプリケーション固有のHTTPコードを検証のコンテキストで設定して、より細分化したいと考えています。現在、ABPはすべての検証エラーに対して200(OK)を設定します。 ABPのソースコードで
はResponse.StatusCode
はここのようなフレームワークによって設定された場合、以下のようないくつかの場所を参照されています。私は最終的にやった
private void HandleAndWrapException(ExceptionContext context)
{
if (!ActionResultHelper.IsObjectResult(context.ActionDescriptor.GetMethodInfo().ReturnType))
{
return;
}
context.HttpContext.Response.Clear();
context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Result = new ObjectResult(
new AjaxResponse(
_errorInfoBuilder.BuildForException(context.Exception),
context.Exception is AbpAuthorizationException
)
);
context.Exception = null; //Handled!
}
私は '[DontWrapResult]'だけがあなたを助けることができると思います。 –