1

私のプロジェクトをMVC2からMVC3にアップグレードし、すべてのカスタムValidationAttributesが壊れました。モデルバインダー相の中でいくつかの点で、それはこの例外をスロー:MVC3 ValidationAttribute break

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

私は何のDisplayNameがない...変更内容を把握することはできません。..

私はどのおそらく、IsValidのオーバーライドを疑います何とか変更されましたが、署名は同じです。

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

MORE INFO:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] 
public sealed class MyValidationAttribute : ValidationAttribute {} 

答えて

0

ソリューションはAttributeTargets.PropertyにAttributeTargets.Classを変更するには、それぞれのを書き換えることだった:それは明らかのように "AttributeTargets.Class" プロパティを、影響

バリデーターは、指定されたプロパティーで動作します。