繁体   English   中英

ASP.NET控制器操作返回状态代码200,但EndRequest将其作为204(NoContent)

[英]ASP.NET controller action returns status code 200 but EndRequest has it as 204 (NoContent)

在我的ASP.NET MVC应用程序控制器中处理请求并返回状态代码为200的特定视图。 当它到达Application_EndRequest它已经是204 我的视图的响应内容是正确的并且在响应中,因此仅修改状态代码。 这是一个例子(状态是204,但内容在那里):

HTTP/1.1 204 No Content
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Expires: -1
Vary: User-Agent
Access-Control-Allow-Origin: *
Date: Fri, 24 Nov 2017 22:12:17 GMT

它可能是一个ActionFilter修改响应代码,但我无法找到一个特定的过滤器来执行它。

什么可能修改我的响应的状态代码,如何调试处理给定请求的所有过滤器?

这是正确的,这意味着系统的一切都很好,数据(内容)不正确。

例如,Employee表有两条记录,其id为1和2.如果使用ef更新id = 3的记录,则会出现此错误。

您需要做的是......对您的数据进行适当的验证。

问题已经找到。 罪魁祸首是Child Action ,作为父控制器行动处理的一部分执行。 当与被执行的父控制器动作200状态加上内容,在Child Action ,这是作为母体作用的一部分而执行,返回NoContent和状态204 它修改响应以使204状态加上主要操作呈现的内容。

解决方法是确保该Child Action工作,因为只有一个孩子的行动和不修改整个响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM