Я украсил класс с:Можно ли использовать обязательный атрибут ValidationAttribute со значениями?
[Required(ErrorMessage = "Price is required.")]
public decimal Price { get; set; }
Но при проверке его с кодом:
for each (PropertyInfo prop in Me.GetType().GetProperties())
{
if (prop.GetIndexParameters().Length = 0)
{
for each (ValidationAttribute validatt in prop.GetCustomAttributes(GetType(ValidationAttribute), True))
{
if (!validatt.IsValid(prop.GetValue(Me, Nothing))
{
retval.Add(New PropertyValidationError(prop.Name, string.Format("There is a problem with the {0} property. It is flagged with the {1}", prop.Name, validatt.GetType.Name), validatt.ErrorMessage));
}
}
}
}
Я нахожу, что значение 0
обращаются как выполняя «requiredness», это не то, что я намеревался (на самом деле, я хотел разрешить любое значение , отличное от ноль) - это мой код проверки, делающий неправильную вещь, или есть способ использовать украшение с ValidationAttribute
, которое не будет выполнено для значений по умолчанию для типов значений?
Учитывая, что я хочу иметь * любое значение, отличное от нуля *; Похоже, мне нужно создать собственный атрибут? –
@RowlandShaw Yeah - Если вы хотите «любое положительное значение», вы можете использовать '[Range]', но для любого значения вам нужен специальный атрибут проверки. –