我試圖驗證裝飾有Validator class的數據註釋的類。使用驗證程序類驗證DataAnnotations
當屬性應用於同一個類時,它工作正常。但是當我嘗試使用元數據類時,它不起作用。有什麼我應該用Validator做的,所以它使用元數據類?下面是一些代碼..
這個工程:
public class Persona
{
[Required(AllowEmptyStrings = false, ErrorMessage = "El nombre es obligatorio")]
public string Nombre { get; set; }
[Range(0, int.MaxValue, ErrorMessage="La edad no puede ser negativa")]
public int Edad { get; set; }
}
這並不工作:
[MetadataType(typeof(Persona_Validation))]
public class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
}
public class Persona_Validation
{
[Required(AllowEmptyStrings = false, ErrorMessage = "El nombre es obligatorio")]
public string Nombre { get; set; }
[Range(0, int.MaxValue, ErrorMessage = "La edad no puede ser negativa")]
public int Edad { get; set; }
}
這是我的驗證情況:
ValidationContext context = new ValidationContext(p, null, null);
List<ValidationResult> results = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(p, context, results, true);
感謝。
我不能System.ComponentModel.DataAnnotations(MVC 2.0) 我做得不對內找到ValidationContext? – Myster 2010-07-21 23:24:56
@Myster檢查項目中是否引用了System.ComponentModel.DataAnnotations.dll。 – Pablote 2010-07-24 02:33:16
只需使用[gist](https://gist.github.com/JimmyBoh/b7c135820c18a06648a5)(擴展方法),你可以調用p.Validate() – 2017-05-05 03:02:39