在 ASP.Net Core 2 MVC 中禁用模型验证的正确方法

2024-04-13

使用扩展方法设置 MVC

services.AddMvc()

然后在控制器中(这也可能适用于 GET),使用主体中提供的参数创建 POST 操作的方法,例如

[HttpPost("save")]
public Entity Save([FromBody]Entity someEntity)

当调用该操作时,MVC 管道将调用 ParameterBinder,而 ParameterBinder 又调用DefaultObjectValidator。我不想要验证(一方面它很慢,但更重要的是在复杂的循环图上循环),但似乎在管道中关闭验证的唯一方法是这样的:

public class NonValidatingValidator : IObjectModelValidator
{
    public void Validate(ActionContext actionContext, ValidationStateDictionary validationState, string prefix, object model)
    {
    }
}

并在启动/配置服务中:

        var validator = services.FirstOrDefault(s => s.ServiceType == typeof(IObjectModelValidator));
        if (validator != null)
        {
            services.Remove(validator);
            services.Add(new ServiceDescriptor(typeof(IObjectModelValidator), _ => new NonValidatingValidator(), ServiceLifetime.Singleton));
        }

这看起来像一把大锤。我环顾四周,找不到替代方案,也尝试删除DataAnnotationModelValidator没有成功,所以想知道是否有更好/正确的方法来关闭验证?


 services.Configure<ApiBehaviorOptions>(options =>
        {
            options.SuppressModelStateInvalidFilter = true;
        });

应禁用自动模型状态验证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.Net Core 2 MVC 中禁用模型验证的正确方法 的相关文章

  • Windows 上使用 g++ 的 Makefile,链接库

    我已经厌倦了 MSVC 6 以及每个人总是告诉我它是一个蹩脚的编译器等等 所以现在我决定尝试使用 vim 加 g 和 makefile 这是我的问题 我有以下 makefile This is supposed to be a commen
  • C 中的变量定义是什么意思[重复]

    这个问题在这里已经有答案了 你们能告诉我 这在 C 中意味着什么吗 define Privileged Data Privileged Data static int dVariable 编译器对变量进行寻址有特殊意义吗 这只是一个宏Pri
  • 扫描文本文件时如何跳过行?

    我想扫描一个文件并在阅读之前跳过一行文本 我试过 fscanf pointer n struct test i j 但这个语法只是从第一行开始 我可以使用 scanf 使用以下指令跳过行 fscanf config file n n 格式字
  • SetWindowsHookEx 函数返回 NULL

    我正在研究 DLL 注入 但收到错误如下 挂接进程失败 87 参数不正确 目标进程和dll都是64位的 注入代码为 BOOL HookInjection TCHAR target TCHAR dll name https msdn micr
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 检查列表是否包含另一个列表。 C#

    编辑 只是说 ContainsAllItem 中的注释解释得最好 很抱歉问这个问题 我知道以前有人问过这个问题 但我只是不明白 好的 所以我想检查一个列表是否包含另一个列表中的所有项目WITHOUT重叠 以及根据类字符串 名称变量 称为项目
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • C# 中附加/分离事件处理程序的不同方式有什么区别

    我的问题有两个部分 首先 我们可以通过以下两种方式附加事件处理程序 myObject MyEvent new EventHandler MyHandler myObject MyEvent MyHandler 据我了解 这两者是等价的 在第
  • F10键没被抓住

    I have a Windows Form and there overriden ProcessCmdKey However this works with all of the F Keys except for F10 I am tr
  • C 中的模仿函数重写

    具体来说 函数重写能够调用基本重写方法 这有两部分 一个是预编译的库代码 1 另一个是库的用户代码 2 我在这里实现了一个尽可能最小的经典 Person 和 Employee 示例 非常感谢了解 OOP 概念的铁杆 C 开发人员的回应 我正
  • 用 C# 制作 Vista 风格的应用程序

    我正在运行 Windows Vista 并且希望外观看起来像常规 Vista 程序 有没有关于如何构建 Vista 风格应用程序的真正好的教程 文章 我还想学习如何使用本机代码并将其转换为 C 如this http bartdesmet n
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • Microsoft.Graph - 如何从具有不同用户名的共享邮箱发送?

    我目前正在将使用 SMTP 的服务代码移植到 Office 365 通过 SMTP 我可以使用 发件人 字段在来自共享收件箱的邮件上设置不同的用户名 同时保留共享电子邮箱地址 这似乎无法通过 Office 365 运行 其工艺流程为 客户填
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 你能解释一下这个C++删除问题吗?

    我有以下代码 std string F WideString ws GetMyWideString std string ret StringUtils ConvertWideStringToUTF8 ws ret return ret W
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标

随机推荐

  • 解码 PDF 文档中文本的 FlateDecoded 部分

    Using peepdf https code google com p peepdf 我正在分析两个简单的 pdf 文件 这两个文件都包含单行文本 ZYXWVUTSRQQRSTUVWXYZ 并且都是在 Mac OS X 上创建的 第一个文
  • R中不等长度列表的平均值

    我有不等长度的向量列表 我想要的是平均值 在每个索引处 例如 a c 2 3 4 b c 2 3 4 5 c c 5 0 3 4 6 avg a b c c 9 3 6 3 11 3 9 2 6 1 如何在 R 中实现这一点 我们可以将向量
  • 如何在 Java Swing 中自动滚动到底部

    我有一个简单的 JPanel 上面有一个 JScrollPane 根据需要带有垂直滚动条 东西被添加到 JPanel 或从中删除 当它超出面板底部时 我希望 JScrollPane 根据需要自动向下滚动到底部 或者如果某些组件离开面板则向上
  • javascript focus() 在 Firefox 和 IE 上不起作用?

    我正在尝试显示一个表单并聚焦它 由于某种原因它只适用于 Chrome 我怎样才能让它跨浏览器工作 div div
  • 客户端验证不会针对 CompareAttribute DataAnnotation 触发

    我正在布置一个比较两个密码字符串的视图 我的模型之一的两个属性非常简单 Required RegularExpression S ErrorMessage White space is not allowed StringLength 20
  • 方法和内部类同名(错误:...与先前的声明冲突)

    我打算有一个类 它有一个内部类和一个名称相似的方法 的代码为example1 cpp即使我有一个内部类和一个同名的方法 编译也没有问题B While example2 cpp如果我重命名将不起作用Position to position用小
  • Kotlin - 在 Android 中转换 Singleton DatabaseController 的最佳方式

    我正在通过 Kotlin in Action 学习 Kotlin 并且正在慢慢地将 Android 应用程序代码转换为它 但我在转换下面的类时发现了一些问题 public class DatabaseController private s
  • VueJS:使用对象文字与返回对象的函数定义“数据”

    定义之间有什么区别data对象可以通过以下方式 1 使用对象字面量 data title Helly VueJS 2 函数返回对象 data return title Helly VueJS 来自文档 https v2 vuejs org
  • 如何使用 pyinstaller 创建最小大小的可执行文件?

    我使用的是 Windows 10 安装了 anaconda 但我想使用 python 3 5 在一个新的 干净的最小环境中独立创建一个可执行文件 所以我做了一些测试 测试1 我在文件夹 testenv 中创建了一个 python 脚本 te
  • 在mysql中选择两个独立的表[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 results mysqli gt query SELECT product name price FROM herbs an WHERE
  • 双倍的 Pow 实现

    我正在开发一个用于运动控制的代码 但我遇到了 pow 函数的问题 我使用VS2010作为IDE 这是我的问题 我有 double p 100 0000 double d 1000 0000 t1 pow p 8 0000 d 1 00 4
  • YouTube.Builder 的正确使用方法

    我需要获取用户 YouTube 视频 这是我的代码 仅尝试获取用户 YouTube 频道 但它不起作用 选择帐户后 加载Youtube频道总是抛出错误 我读了这个answer https stackoverflow com a 214077
  • 如何使用类库中的控制器?

    我在类库中有控制器 但我无法弄清楚如何让主项目识别它们 主项目引用了我的类库 我需要在某处注册它们吗 我想同时使用控制器和 ApiController EDIT 路线配置 创建项目后未更改 public class RouteConfig
  • 在 swift 中将 UIImage 转换为 base64 字符串

    我正在尝试将 UIImage 转换为 base64 字符串 目的是将其上传到后端服务器 然而 我在这篇文章中找到的转换代码 应该是Apple自己的实现 生成了一个无效的字符串 UIImage 和 Base64 字符串之间的转换 https
  • Javafx程序可以通过GUI和命令行控制吗?

    我正在使用 Javafx GUI 但我也需要来自命令行的相同级别的功能 我想知道创建一个同时具有命令行和 Javafx 功能的主类的最佳方法是什么 这样您就可以在 GUI 上做一件事 然后在命令行上做下一件事 命令行还会更新 GUI 显示
  • CSV 日期格式

    我有一个 VB 应用程序 它提取数据并创建 3 个 CSV 文件 a csv b csv c csv 然后我使用另一个 Excel 电子表格 import xls 将上述 CSV 文件中的所有数据导入到此工作表中 import xls 文件
  • 使用 python 进行多元线性回归

    我想用 python 计算多元线性回归 我找到了这个简单线性回归的代码 import numpy as np from matplotlib pyplot import x np array 1 2 3 4 5 y np array 2 3
  • 无法启动服务器。服务器实例未配置

    在尝试为我的项目设置 tomcat 服务器时 出现以下错误 请参阅下面的完整堆栈跟踪 java lang ClassNotFoundException com springsource tcserver serviceability dep
  • libstdc++.so.6 与 cuda 相关的链接器问题

    今天我在链接我编译的 cuda 内容时遇到了问题 我有一个最新的 debian 测试 w 2 6 32 3 amd64 我整天都在写我的代码 不时编译 没有问题 但在进行了较小的代码更改后 我收到以下错误 gcc o pa CUDA o h
  • 在 ASP.Net Core 2 MVC 中禁用模型验证的正确方法

    使用扩展方法设置 MVC services AddMvc 然后在控制器中 这也可能适用于 GET 使用主体中提供的参数创建 POST 操作的方法 例如 HttpPost save public Entity Save FromBody En