2012-06-12 3 views
3

je les règles suivantes spécifiées dans mon codeFluentValidation: les noms de type de validation doit être unique

RuleFor(x => x.Auction_Round1Ring1Start).GreaterThan(DateTime.Now); 

    RuleFor(x => x.Auction_Round1Ring1End).GreaterThan(x => x.Auction_Round1Ring1Start); 

    RuleFor(x => x.Auction_Round1Ring2Start).GreaterThan(x => x.Auction_Round1Ring1End); 
    RuleFor(x => x.Auction_Round1Ring2End).GreaterThan(x => x.Auction_Round1Ring2Start); 

    RuleFor(x => x.Auction_Round1Ring3Start).GreaterThan(x => x.Auction_Round1Ring2End); 
    RuleFor(x => x.Auction_Round1Ring3End).GreaterThan(x => x.Auction_Round1Ring3Start); 

    RuleFor(x => x.Auction_Round2Start).GreaterThan(x => x.Auction_Round1Ring3End); 

et je reçois cette erreur

Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: required 

Je reçois cette erreur sur cette ligne dans une vue

@Html.EditorForModel() 
+0

Pourriez-vous montrer votre classe de modèle? –

+0

oui - l'afficher maintenant –

Répondre

4

Assurez-vous que n'a pas d a étalonné les propriétés de classe de votre modèle de vue avec les attributs d'annotation de données.

Correct:

[Validator(typeof(MyViewModelValidator))] 
public class MyViewModel 
{ 
    public DateTime Auction_Round1Ring1Start { get; set; } 
    public DateTime Auction_Round1Ring1End { get; set; } 

    public DateTime Auction_Round1Ring2Start { get; set; } 
    public DateTime Auction_Round1Ring2End { get; set; } 

    public DateTime Auction_Round1Ring3Start { get; set; } 
    public DateTime Auction_Round1Ring3End { get; set; } 

    public DateTime Auction_Round2Start { get; set; } 
} 

Mauvais:

[Validator(typeof(MyViewModelValidator))] 
public class MyViewModel 
{ 
    [Required] 
    public DateTime Auction_Round1Ring1Start { get; set; } 
    public DateTime Auction_Round1Ring1End { get; set; } 

    public DateTime Auction_Round1Ring2Start { get; set; } 
    public DateTime Auction_Round1Ring2End { get; set; } 

    public DateTime Auction_Round1Ring3Start { get; set; } 
    public DateTime Auction_Round1Ring3End { get; set; } 

    public DateTime Auction_Round2Start { get; set; } 
} 
+0

J'ai mis à jour mon message avec mon code de modèle. Comme vous pouvez le voir, je n'ai pas l'attribut requis partout. –

+0

Qu'est-ce que la classe 'AuctionMetadata'? Il semble contenir des métadonnées sur la classe Auction. Qu'en est-il des classes 'AuctionStatus',' Invitation' et 'Lot'? Contiennent-ils des annotations de données? Sont-ils décorés avec une classe de métadonnées qui pourrait ajouter des annotations de données? –

+0

Oui, c'était là que l'attribut requis était - fixed - marqué comme réponse :-) –

Questions connexes