【发布时间】:2018-04-12 19:43:47
【问题描述】:
我有一些难以实现的东西:在控制器操作中,出于多种原因(遗留代码),我必须在计算请求之后 覆盖响应。 我已经用下面的代码做到了:
HttpContext.Response.Buffer = false;
HttpContext.AddOnRequestCompleted(callbackFunction);
在响应准备好后,发送它:
HttpContext.Response.Buffer = true;
现在,问题是当 Response 计算失败时,我必须更改 Response 的 StatusCode ;但我总是得到 200。
请问你有什么想法吗?
【问题讨论】:
-
AFAIK,如果您禁用缓冲,Web 服务器会立即开始发送响应。鉴于 HTTP 响应以包含状态代码的状态行开头,在您开始发送响应后,您将无法更改状态代码。
标签: c# asp.net asp.net-mvc httpresponse http-response-codes