强制自定义mvc数据注释验证器作为Require

时间:2012-04-23 19:45:17

标签: c# model-view-controller validation model data-annotations

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

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

 [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;
    }

1 个答案:

答案 0 :(得分:0)

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

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