2 回答
TA贡献1820条经验 获得超10个赞
不确定我是否喜欢进行盲状态代码转换。当然,这取决于您的具体情况。
Configure在您的方法中注入的这一点中间件可以解决问题:
public void Configure(IApplicationBuilder app)
{
app.Use(next => context =>
{
context.Response.OnStarting(() =>
{
if (context.Response.StatusCode == 405)
{
context.Response.StatusCode = 404;
}
return Task.CompletedTask;
});
return next(context);
});
}
注意:在链的早期添加它。
TA贡献1891条经验 获得超3个赞
这是您可以使用StatusCodePages中间件处理的事情。这是一个例子:
app.UseStatusCodePages(ctx =>
{
if (ctx.HttpContext.Response.StatusCode == 405)
ctx.HttpContext.Response.StatusCode = 404;
return Task.CompletedTask;
});
传入的参数UseStatusCodePages是一个回调函数,只要中间件检测到状态码在 400 到 599 之间(主体为空)的响应,就会执行该回调函数。在上面的示例中,我们简单地检查405并将其更改为404. 对自身的调用UseStatusCodePages必须放在任何请求处理中间件之前,例如 MVC。
- 2 回答
- 0 关注
- 146 浏览
添加回答
举报