asp.net - ViewModel 的条件验证
问题描述
我有一个 ViewModel 用于包含两个单独的 ViewModel 的向导,这些 ViewModel 用于将部分视图加载到向导中。根据在 Step1 中选择的选项,我需要验证 Step2 或 Step3。Step2 和 3 的视图模型有自己的 AbstractValidator,因为它包含客户端验证,所以效果很好。问题是,如果我使用 ModelState.IsValid,其中一个 VM 总是无法验证,因为它是空的(未填写该步骤)。有没有办法跳过对其中一个视图模型的验证?
解决方案
假设您有以下模型:
public class PersonViewModel
{
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string FullName { get; set; }
}
但是您想从模型验证中排除 FullName,因为您也在未填写 FullName 的地方使用模型,您可以通过以下方式执行此操作:
ModelState.Remove("FullName");
希望能帮到你,我的朋友:))
推荐阅读
- java - 从java中的二叉搜索树中删除一个节点
- php - 如何在 SEO url 中传递动态查询字符串
- php - php mail() 函数代码向特定的电子邮件地址发送一次电子邮件
- sql-server - 将几何转换为地理
- javascript - Materialise CSS Equal Column/Card Height:响应式卡片内容高度
- java - 请求中缺少 Grant_type
- python-3.x - python 代码可以部署在 AWS lambda 中,但不能部署在 localstack 中
- data-structures - 在 Rust 中删除单链表中的节点
- php - Paypal IPN 不发送 payer_email 变量
- hibernate - 使用 Spring 数据 jpa 进行批量更新