有没有办法使用 ASP.NET 样板返回自定义 HTTP 状态代码(如 4xx)?
我想在验证上下文中设置自定义应用程序特定的 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!
}