【问题标题】:ASP NET how to add a condition to a model validation annotation?ASP NET 如何向模型验证注释添加条件?
【发布时间】:2019-06-26 14:53:26
【问题描述】:

我的表单中有密码确认功能。但如果用户已经登录,我会在该表单中隐藏密码和密码确认字段。

提交此表单时,如果浏览器存储了网站上的任何“密码”字段,则我的模型正在验证确认密码,这会导致错误。

如何向此验证添加条件,以便在用户已登录时不会触发。

    [Display(Name="Confirm Password")]
    [DataType(DataType.Password)]
    [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "Passwords do not match")]
    [RequiredIfEqual("LoggedIn", false, ErrorMessage = "This field is required")]
    public string PasswordConfirm { get; set; }

【问题讨论】:

    标签: asp.net validation annotations


    【解决方案1】:

    您不能为默认Compare 属性添加条件。

    您可以为您的需求编写一个自定义属性,在该属性中您可以获取HttpContext.Current.Session["Login"] != null 并检查您的逻辑。

    你可以参考这个来实现自定义比较属性

    https://www.codeproject.com/Tips/780992/Asp-Net-MVC-Custom-Compare-Data-annotation-with-Cl

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 2021-11-04
      • 2017-05-30
      • 2020-08-26
      相关资源
      最近更新 更多