什么时候 context.Result null 在动作过滤器 .NET 中?

When is context.Result null inside of an action filter .NET?

我注意到 ASP.NET Core MVC ModelStateInvalidFilter 在检查 ModelState.IsValid 之前检查是否 Context.Result == null?什么原因?

答案在Result 属性 说明评论在ActionExecutingContext.cs:

Gets or sets the IActionResult to execute. Setting Result to a non-null value inside an action filter will short-circuit the action and any remaining action filters.

这意味着如果操作的 short-circuit 已经启动,则在 context.ModelState.IsValid 设置为 false 的情况下没有理由覆盖先前的值。这是错误的做法。