gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 2 中的动态范围验证

转载 作者:行者123 更新时间:2023-12-03 02:53:18 26 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC2 并尝试使用 System.ComponentModel.DataAnnotations 命名空间中的属性来验证我的 View 模型。

如何动态设置 RangeAttribute 允许的有效范围?例如,如果我想验证输入的日期是否在预期范围内。

这不能编译:

[Range(typeof(DateTime), 
DateTime.Today.ToShortDateString(),
DateTime.Today.AddYears(1).ToShortDateString())]
public DateTime DeliveryDate { get; set; }

因为“属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式”。

我需要创建自己的自定义验证器吗?

最佳答案

好的,找到答案了。 .NET Framework 4 提供了新的 CustomValidationAttribute,它使以下功能成为可能:

[Required]
[DisplayName("Ideal Delivery Date")]
[CustomValidation(typeof(HeaderViewModel), "ValidateDeliveryDate")]
public DateTime DeliveryDate { get; set; }

public static ValidationResult ValidateDeliveryDate(DateTime deliveryDateToValidate)
{
if (deliveryDateToValidate.Date < DateTime.Today)
{
return new ValidationResult("Delivery Date cannot be in the past.");
}

if (deliveryDateToValidate.Date > DateTime.Today.AddYears(1))
{
return new ValidationResult("Delivery Date must be within the next year.");
}

return ValidationResult.Success;
}

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute%28VS.100%29.aspx

关于asp.net-mvc - ASP.NET MVC 2 中的动态范围验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com