【发布时间】:2023-04-05 17:40:01
【问题描述】:
我正在尝试验证 18 岁以上的年龄,这是在服务器端验证上工作,但它在客户端不工作,我不知道该怎么做。 我看过文章,但没有用。
- 我在服务器端 C# 中实现了逻辑。
- 我是否也需要在客户端 jQuery/JavaScript 中实现相同的逻辑。
我的后端代码是
public class ValidateAge : ValidationAttribute
{
public ValidateAge( params string[] propertyNames)
{
this.PropertyNames = propertyNames;
}
public string[] PropertyNames { get; private set; }
public int MinLength { get; private set; }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
DateTime date = Convert.ToDateTime(value, System.Globalization.CultureInfo.InvariantCulture);
if (DateTime.Compare(date, DateTime.Now.AddYears(-18)) == -1 || DateTime.Compare(date, DateTime.Now.AddYears(-18)) == 0)
{
return ValidationResult.Success;
}
else
{
return new ValidationResult(this.FormatErrorMessage(validationContext.DisplayName));
}
}
}
在模型中是这个
[Required(ErrorMessage="Date of birth is required.")]
[ValidateAge(ErrorMessage="Age must be above 18.")]
[DataType(DataType.Date)]
public DateTime _Dob { get; set; }
它是验证模型,但不显示服务器端或客户端的错误消息,我试过了
jQuery.validator.unobtrusive.adapters.add but no one explained how to use it
i dont know how to make it work
感谢任何帮助。
【问题讨论】:
-
你必须使用远程验证。
-
你能告诉我它是如何工作的吗?
-
你也可以使用jqury函数。这个链接用于远程验证http://www.c-sharpcorner.com/UploadFile/d87001/remote-validation-in-mvc/。
-
我应用了相同的方法,但现在表单甚至没有回发,[HttpGet] [AllowAnonymous] public ActionResult ValidateAge(String dt) {} model [Remote("ValidateAge","Account",ErrorMessage ="年龄必须在 18 岁以上。")]
-
我在网络检查中发现它实际上正在工作,但问题是我使用日历控制时,当我使用日历输入时它不起作用但是当我使用手动输入时它工作,现在问题我希望它与日历控件一起使用吗?
标签: c# jquery validation asp.net-mvc-4