是否可以手动更新 ModelState.IsValid ?

2024-06-24

我想尽可能使用内置的验证功能。我还想对 CRUD 方法使用相同的模型。

但是,由于无法使用标准模式完成下拉列表,因此我必须手动验证它。在回发方法中,我只想验证下拉列表并将此结果添加到 ModelState 中,这样我就不必验证使用数据注释完成的所有其他参数。有可能实现这一目标吗?

我可能对下拉列表有误解,但从我读到的内容来看,下拉列表的 Html 对象名称不能与模型中的属性相同,以便正确设置所选值。通过此解决方法是否仍然可以使用数据注释?

Thanks.


您可以使用addModelError http://msdn.microsoft.com/en-us/library/system.web.mvc.modelstatedictionary.addmodelerror%28v=vs.90%29.aspx

ModelState.AddModelError(key,message)

当你使用它时,它会使 ModelState 无效,所以isValid将返回 false。


Update
看到对 @Pieter 的回答的评论后

如果你想排除一个元素影响isValid()结果,您可以使用ModelState.Remove(field) http://msdn.microsoft.com/en-us/library/system.web.mvc.modelstatedictionary.remove%28v=vs.90%29.aspx调用之前的方法isValid().

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

是否可以手动更新 ModelState.IsValid ? 的相关文章

随机推荐

  • 如何比较本地 Git 分支与其远程分支

    我怎样才能看到diff本地分支和远程分支之间 git diff
  • 在php中遍历数组[重复]

    这个问题在这里已经有答案了 可能的重复 循环数组的数组 https stackoverflow com questions 8055123 loop an array of array 所以我知道如何遍历偶数 key gt value 关联
  • 如何使用返回 Mono 的生成包装调用创建 Flux

    我有一个例子 我想使用 Flux generate 因为我不想进行昂贵的阻塞调用 除非 直到订阅者要求它 具体来说 我多次调用 Elasticsearch 有效地进行分页 直到不再有命中为止 我已经使用标准阻塞调用实现了这一点Iterato
  • 如何在 Flutter 中将列表从一个类传递到另一个类?

    所以我有一个列表 我在一个屏幕上添加数据 每次单击某个按钮时 然后 我有一个底部导航栏 它允许我在屏幕之间切换 因此也没有弹出或推送路线 我的问题是我有两个屏幕 我想从第二个状态类中的第一个状态类访问列表 带有列表的类 class Secu
  • 如何在 C# 中暂时清空 Windows-7 第二个显示屏?

    我尝试使用 ChangeDisplaySettingsEx 将其宽度和高度设置为 0 这会清空显示监视器 但当我将 W 和 H 设置回来 并恢复 dmPosition x 时 它就保持关闭状态 我的系统有两台显示器 我正在尝试暂时清空其中一
  • 使错误的消息属性可枚举

    是否可以使 Error 对象的 message 属性可枚举 以便在将其字符串化时 var errstr JSON stringify new Error my error 这样它就能给你 message my error 代替 我知道你可以
  • 尝试在 PyQt5 中的 pyqtgraph 绘图小部件中获取带有坐标显示的光标

    我正在尝试在 PyQt5 的 pqytplot 图小部件中添加光标位置的读数 我发现这段代码可以实现我想要的功能 但是在一个独立的窗口中 所有这些都在一个程序文件中 import pyqtgraph as pg from pyqtgraph
  • 方法返回类型的类型推断

    当存在显式方法时 为什么 Scala 无法推断方法的返回类型return方法中使用的语句 例如 为什么下面的代码可以编译 object Main def who 5 def main args Array String println wh
  • 带滚动条的控件上的 .NET C# MouseEnter 侦听器

    只要鼠标悬停在特定控件上 我们就会显示某种形式 当鼠标离开控件时 我们会在短暂的超时后隐藏控件 这是标准的悬停行为 但是 当控件 例如树视图 具有滚动条并且鼠标位于滚动条上或上方时 事件不会触发 如果我们可以获得对滚动条控件的引用 这将解决
  • C# 中的单例是什么?

    什么是单例以及何时应该使用它 单例是一种只允许创建其自身实例的类 并且提供对所述实例的简单 轻松的访问 单例前提是整个软件开发的一种模式 有一个C 实现 在 C 中实现单例模式 http csharpindepth com Articles
  • 尝试将焦点设置在隐藏的文本框上

    我试图将焦点集中在隐藏的文本框上 我希望当包含文本框的 body 或 div 加载时 焦点应该位于特定的文本框上 以便该元素捕获来自键盘或任何其他设备的任何输入 我已经尝试过以下代码没有效果
  • C#:抽象策略基类充当策略对象的抽象工厂

    我正在尝试为我的公司创建一个基于网络的工具 本质上是使用地理输入来生成表格结果 目前 三个不同的业务领域使用我的工具并收到三种不同类型的输出 幸运的是 所有的输出都基于相同的主表 子表的思想 它们甚至共享一个公共主表 不幸的是 在每种情况下
  • 无法停止或重新启动 docker 容器

    当尝试停止或重新启动 docker 容器时 我收到以下错误消息 docker restart 5ba0a86f36ea Error response from daemon Cannot restart container 5ba0a86f
  • 如何安装以前版本的 Aptana

    我根本不喜欢3 6版本 它有太多错误 而且与以前的版本相比速度太慢 所以我想安装到以前的版本并等待他们解决问题 我无法降级安装 所以不 不是一个选项 我知道在这个网站上 https wiki appcelerator org display
  • 针对 openpose 将 GCC 9.3.0 降级到 7 后,cuda_compile_1_ generated_batch_norm_layer.cu.o.Release.cmake 出现 CMake 错误

    你知道我该如何解决以下错误吗 这是在我使用以下命令从 GCC 9 3 0 降级到 7 后发生的 使用以前版本的 GCC 我收到此错误 CMake 不支持的 GNU 版本 不支持高于 8 的 gcc 版本 https stackoverflo
  • java中的配置文件

    我创建了一个 Swing 应用程序 GUI 其中包含文本字段 标签 复选框和组合框等字段 当用户输入一些信息时 我希望将文本字段 组合框和复选框的详细信息保存到文件中 并且下次用户打开此窗口时 我希望将已保存在文件中的详细信息 即那些用户上
  • 使用单引号和双引号对 XPath 表达式进行编码

    XPath v1 不包含对表达式进行编码的方法 如果只有单引号或双引号 则可以使用诸如 review name Bob s Pizza review name Pizza Pam 但是如果你两者都有 例如 Fred s Fancy Pizz
  • React NotFoundError:无法在“Node”上执行“insertBefore”:要插入新节点的节点不是该节点的子节点

    当我在 React 中内置的 Aframe 资产管理器中更新新资产时 出现此 notFound 错误 资产管理器组件的构建如下 export class Assets extends PureComponent render const h
  • OS 和 SYS 等容易混淆的 Python 类的命名背后的原因是什么?

    我注意到 SO 中与 Python 相关的大量问题都是关于人们搞乱 Sys 类 操作系统类和无类 例如 一个容易混淆的情况是 os open something open something and sys open something 我
  • 是否可以手动更新 ModelState.IsValid ?

    我想尽可能使用内置的验证功能 我还想对 CRUD 方法使用相同的模型 但是 由于无法使用标准模式完成下拉列表 因此我必须手动验证它 在回发方法中 我只想验证下拉列表并将此结果添加到 ModelState 中 这样我就不必验证使用数据注释完成