C# Asp.NETMVC如何进行条件验证

C# Asp.NETMVC如何进行条件验证,c#,asp.net-mvc-5,asp.net-mvc-validation,validationattribute,C#,Asp.net Mvc 5,Asp.net Mvc Validation,Validationattribute,我正在尝试构建一个演示应用程序,以获得Asp.NETMVC5开发经验。在这些日子里,我试图建立一个网站设置 我有一个名为“设置”的模型。这里有如下属性 public int PasswordRequiredLength { get; set; } public bool PasswordRequireNonLetterOrDigit { get; set; } public bool PasswordRequireDigit { get; set; } publi

我正在尝试构建一个演示应用程序,以获得Asp.NETMVC5开发经验。在这些日子里,我试图建立一个网站设置

我有一个名为“设置”的模型。这里有如下属性

    public int PasswordRequiredLength { get; set; }
    public bool PasswordRequireNonLetterOrDigit { get; set; }
    public bool PasswordRequireDigit { get; set; }
    public bool PasswordRequireLowercase { get; set; }
    public bool PasswordRequireUppercase { get; set; }
    public bool UseAlphaNumericCharacters {get; set; }          
在ApplicationUserManager中,我做了这些修改

        // Configure validation logic for passwords
        manager.PasswordValidator = new PasswordValidator
        {
            RequiredLength = CacheHelper.Settings.PasswordRequiredLength > 0 ? CacheHelper.Settings.PasswordRequiredLength : 8,
            RequireNonLetterOrDigit = CacheHelper.Settings.PasswordRequireNonLetterOrDigit ? true : false,
            RequireDigit = CacheHelper.Settings.PasswordRequireDigit ? true : false,
            RequireLowercase = CacheHelper.Settings.PasswordRequireLowercase ? true : false,
            RequireUppercase = CacheHelper.Settings.PasswordRequireUppercase ? true : false
        };
因此,将在运行时指定密码验证。到现在为止,一直都还不错。应用程序更加灵活。但是RegisterViewModel呢

有如下属性

    [StringLength(20, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 5)]
    [RegularExpression("^([a-zA-Z0-9]{5,20})$", ErrorMessage = "The {0} must contain only alphanumeric characters")]
    [Display(ResourceType = typeof (Resources.Translations), Name = "Username")]
    public string UserName { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }
如何验证密码的最小长度?或字母数字字符,如果
passwordrequireOnletterDigit
false?用户名也是一样。这取决于
是否使用字母数字字符


谢谢。

您想在运行时对另一个数据的值进行验证吗?如果
public bool使用alphanumericcharacters{get;set;}
true,它来自数据库。然后使用
[RegularExpression(^([a-zA-Z0-9]{5,20})$”,ErrorMessage=“{0}必须只包含字母数字字符”)]
此验证。如果是假的。不要使用。最大和最小限制值也来自数据库。您是否尝试过或使用
[RequiredIf]
或类似方法attribute@TaşyürekGökşah尝试查看RemoteAttribute是否要在运行时对其他数据的值进行验证?如果
public bool使用来自数据库的alphanumericCharacters{get;set;}
true。然后使用
[RegularExpression(^([a-zA-Z0-9]{5,20})$”,ErrorMessage=“{0}必须只包含字母数字字符”)]
此验证。如果是假的。不要使用。最大和最小限制值也来自数据库。您是否尝试过或使用
[RequiredIf]
或类似方法attribute@TaşyürekGökşah尝试查看远程属性