强制自定义 mvc 数据注释验证程序按要求工作

本文关键字:程序 工作 验证 注释 自定义 mvc 数据 | 更新日期: 2023-09-27 18:31:58

我为其中一个表单字段编写了一个自定义数据验证器,它完成了这项工作,但是表单仍在提交并且没有向用户返回错误消息。

有没有办法强制用户显示错误并阻止提交表单?

 [CheckDateInPast(ErrorMessage = "Your date cannot be in the future.")]
  .
  .
  .
 @Html.ValidationMessageFor(model => model.MyField)

如何使我的自定义验证器作为 [Require] 属性工作,以便用户无法提交任何不符合我的条件的内容。

提前谢谢你!

编辑。这是验证器。我的意思是验证提供的日期不是将来的,并且不小于SQL Server中允许的日期。

        public override bool IsValid(object value)
    {
        DateTime date;
        bool success = DateTime.TryParse(value.ToString(), out date);
        if (!success)
            return false;
        if (date < System.Data.SqlTypes.SqlDateTime.MinValue || date > DateTime.Now)
            return false;
        return true;
    }

强制自定义 mvc 数据注释验证程序按要求工作

您需要通过实现 IClientValidatable 接口来启用客户端验证,以防止使用无效数据提交表单。

有关详细信息,请参阅以下内容:

  • 在 MVC 3 中创建自定义验证属性
  • ASP.net MVC 通用客户端和服务器端验证
相关文章: