0

所以,我有我的元數據的驗證如下所示:RIA服務驗證爲了

internal sealed class Metadata 
    { 
     [Key] 
     [ReadOnly(true)] 
     public int Id { get; set; } 

     [Required] 
     public string Name { get; set; } 

     [Required] 
     public string CountryCode { get; set; } 

     [CustomValidation(typeof(PCNValidator), "SetNumber")] 
     public string Number { get; set; } 
    } 

我有一些代碼來驗證Number屬性,你可以在這裏看到,但我需要一些其他所需的屬性要先開火的屬性。

我該如何做到這一點?

回答

0

據我所知,這個問題的答案是NO,沒有辦法在屬性級驗證中告訴訂單。

話雖如此,每Required屬性之前驗證其他。

爲了達到我想要的效果,我添加了一個類驗證器。類型驗證器總是在屬性驗證器之後被觸發,這正是我所需要的。

這裏是我的代碼:

[MetadataType(typeof(PCN.Metadata))] 
[CustomValidation(typeof(PCNValidator), "ValidateInsert")] 
public partial class PCN : IValidate 
{ 
    internal sealed class Metadata 
    { 
     [Key] 
     [ReadOnly(true)] 
     public int Id { get; set; } 

     [Required(AllowEmptyStrings=false)] 
     public string Name { get; set; } 

     [Required] 
     public string CountryCode { get; set; } 
    } 
} 
0

您可以讓您的PCNValidator成功返回,直到名稱和國家/地區代碼完成。一旦條件得到滿足,您就可以對Number進行其餘的驗證檢查。不是一個好的解決方案,但它確實可以滿足您的訂購要求。

+0

我會怎麼做呢?一旦數字驗證它不會再驗證...我可以強制驗證一些如何? – sebagomez 2010-12-10 15:49:10