首页 > 解决方案 > ASP.NET Core 中的 HttpContext RESPONSE END 如何

问题描述

我想使用 mvc System.Web.HttpContext.Current.Response.End(); ,但在 mvc core 2 中尝试使用以下代码:

 private readonly IHttpContextAccessor _httpContextAccessor;

            public SmsService(IUnitOfWork uow ,IHttpContextAccessor httpContextAccessor) 
            {
                _uow = uow;
                _uow.CheckArgumentIsNull(nameof(_uow));
                _LockIPRequest= uow.Set<LockIPRequest>();
                this._httpContextAccessor = httpContextAccessor;
            }

      _httpContextAccessor.HttpContext.Response.WriteAsync("</body></html>");
      _httpContextAccessor.HttpContext.Response.end();

_httpContextAccessor.HttpContext.Response.end();

结尾(); 不起作用 mvc 核心不退出

标签: c#asp.net-mvcasp.net-core-2.0

解决方案


正如评论中提到的, Response.End 在 ASP.NET Core 世界中不存在。

而不是 Response.End,您应该像这样设置响应状态代码:

 _httpContextAccessor.HttpContext.Response.StatusCode = StatusCodes.Status200OK;

这不会完全“结束”响应。中间件仍然有机会运行,但通过设置状态码,框架可以了解已提供响应。但是,您将负责确保您的下游中间件不会输出其他内容以响应请求。虽然这通常不是问题。


推荐阅读