c# - 禁用自动模型验证 ASP.NET Core MVC
问题描述
我有一个Save
方法可以获取传入的视图模型。在 Viewmodel 中,我有一堆发生的自定义验证。
public class DealViewModel : IValidatableObject
{
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
}
}
public IActionResult SaveDeal(DealViewModel dealViewModel)
{
}
我想在它点击保存方法后运行验证,因为我需要从会话中获取信息更新视图模型然后验证。
这就是我验证的方式:
var isValid = Validator.TryValidateObject(dealViewModel, context, results, true);
SaveDeal
但是我的代码甚至在控制器中的方法中之前就命中了验证方法。
有没有办法阻止这种情况并在我准备好时强制验证?
解决方案
可能重复:在 ASP.Net Core 2 MVC 中禁用模型验证的正确方法
基本上,添加一个继承 IObjectModelValidator 但对 Validate 方法不执行任何操作的新类。还将它添加到依赖注入容器中。
推荐阅读
- redis - 使用 ReJSON 从 redis 获取元素范围
- excel - 在工作表函数中使用表引用
- python - 在保持受限布局的同时将轴重新添加到 matplotlib 图形的正确方法是什么?
- image - Docker:无法从损坏的拉取中删除中间图像
- javascript - 我可以把它变成 1 个 switch case 而不是很多 if else 语句
- html - 响应式表中断
- r - 使用 R 整理数据
- php - 在一个 foreach 中比较两个数组的所有值
- angular - angular.json 样式导入和生产构建文件
- ansible - Ansible - 来自 .env 文件的环境变量