c# - 用于检查 ModelState.IsValid 的 ActionFilter 永远不会被命中
问题描述
我写了一个 ActionFilter 来检查我的模型状态是否有效(所以我可以记录问题):
public class ValidationFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{ ... }
}
我的断点永远不会被击中,我确实在 Postman 中得到了输出:
{ "errors": {
"RequiredText": [
"Test - RequiredText is required"
]
},
"title": "出现一个或多个验证错误。",
"status": 400,
"traceId": "0HLOBA7E4R7SL:00000002"
}
我假设 .NET Core 事先进行了验证。
有没有办法关闭它,所以我的属性被使用?
解决方案
SuppressModelStateInvalidFilter
我认为您必须通过将选项设置为 true来禁用默认行为。您可以在 ConfigureServices 方法中将此选项设置为 true。像,
public void ConfigureServices(IServiceCollection services)
{
services.Configure<ApiBehaviorOptions>(options =>
{
options.SuppressModelStateInvalidFilter = true;
});
}
推荐阅读
- c - 无法将命令写入 nvmeq->sq_cmds[nvmeq->sq_tail]
- c++builder - 升级到 C++Builder 11 后 TIdTCPServer 不工作
- kubernetes - 应用 yaml 时,应用程序未显示在 ArgoCD 中
- sql - 选择特定中间项的 MySQL 嵌套聚合查询
- javascript - Javascript:为多个字符串编写条件正则表达式
- android - 获取 SerializedName 值
- python - 关于 numpy 中的精美索引,例如 `a[b]` 或 `a[np.array(b)]`,b 是一个列表。结果不一样
- azure - az login 在“az account clear”之后未列出订阅
- reactjs - 如何使用 Reactjs 在表格中显示数组对象
- android - Android不支持链接电话(Expo react native)