首页 > 解决方案 > 在其他视图模型中修改视图模型的验证

问题描述

在其他视图模型中时,我需要能够绕过/禁用/更改视图模型的验证。

例如,这是我的包含其他视图模型的视图模型:

public class OrderVM
{
    public SignMethod SignMethod { get; set; }
    public LoginVM LoginVM { get; set; }
    public RegisterVM RegisterVM { get; set; }
}
public class LoginVM
{
    [Required]
    public string Email { get; set; }

    // More properties here...
}
public class RegisterVM
{
    [Required]
    public string Email { get; set; }

    // More properties here...
}

他们有我想绕过/禁用/更改或添加的验证属性(在属性上)。

在此示例中, 和 的视图模型LoginVM必须RegisterVM包含必需的属性,因为它是登录和注册页面的独立视图模型。

但是,在OrderVM所需的验证内LoginVMRegisterVM仅应根据SignMethod属性应用,如果用户已选择,则应应用SignMethod.Login所需的验证,并且应禁用,反之亦然。LoginVMRegisterVM

我怎样才能实现这种行为并在视图模型中正确表示它?

标签: asp.netasp.net-mvcasp.net-core

解决方案


推荐阅读