Вопрос

Я обновил свой проект с MVC2 до MVC3, и все пользовательские проверки сломались. В какой -то момент в фазе связующего модели он бросает это исключение:

Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: value
System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value) 

Я не могу понять, какие изменения ... нет имени отображения ..

Я подозреваю, что Isvalid переопределяет, что, предположительно, каким -то образом изменилось, но подпись такая же.

public override bool IsValid(object value)
{
   ....
}

БОЛЬШЕ ИНФОРМАЦИИ:

Это, по -видимому, влияет на свойства "attributeTargets.class", как в:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class MyValidationAttribute : ValidationAttribute {}
Это было полезно?

Решение

Решением состояло в том, чтобы изменить attributeTargets.class на AttributeTargets.property и переписать каждый валидатор для работы с данным свойством.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top