c# - 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 核心不退出
解决方案
正如评论中提到的, Response.End 在 ASP.NET Core 世界中不存在。
而不是 Response.End,您应该像这样设置响应状态代码:
_httpContextAccessor.HttpContext.Response.StatusCode = StatusCodes.Status200OK;
这不会完全“结束”响应。中间件仍然有机会运行,但通过设置状态码,框架可以了解已提供响应。但是,您将负责确保您的下游中间件不会输出其他内容以响应请求。虽然这通常不是问题。
推荐阅读
- sql - 如何根据另一个表中另一列的值更新表中的列
- php - Drupal TCPDF 不创建 pdf
- eclipse - Maven eclipse 工作区路径
- java - WebView android不允许全屏
- python-3.x - 带有水平和垂直滚动条的 GUI 表(水平不能正常工作)
- angularjs - 更改时,我们可以在浏览器中自动刷新 Angular js 代码吗?
- javascript - 使用 CefSharp 将字符串/JSON 从 C# 传递到 JS
- git - 使用 GIT4Windows、共享文件夹和两台计算机——这个工作流程是否正确?
- git - 比较两个不同分支中的两个标签
- javascript - Date.getDate 总是返回 1