When是上下文.操作筛选器内部的结果为null.NET



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

ActionExecutingContext.cs:中Result属性描述注释中的答案

获取或设置要执行的IActionResult。将Result设置为动作过滤器内的非null值将使动作短路以及任何剩余的动作过滤器。

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

最新更新