2010-06-10 5 views
0

J'utilise ASP.NET MVC Binding Framework.Liaison ASP.NET MVC - Messages dupliqués

Disons que j'ai un élément de classe, qui a un champ obligatoire.

Je lie une liste, et ne veux pas un message d'erreur pour chaque élément de cette liste.

Si plus d'une erreur se produit lors de la liaison du champ Id, je souhaite qu'un seul message soit ajouté à ModelState et affiché à l'utilisateur. En une phrase: existe-t-il un moyen d'éviter les messages dupliqués à l'aide de ASP.NET MVC Binding Framework?

+1

Il semblerait qu'il serait plus facile d'écrire votre propre résumé de validation au lieu de votre propre classeur de modèle. – bzlm

Répondre

1

Vous pouvez inventer votre propre solution. Par exemple, votre classeur de modèle peut ajouter des erreurs de modèle en tant qu'objets ModelItemException spéciaux. Ensuite, la méthode OnActionExecuted() d'ActionFilter ou du contrôleur de base parcourt les erreurs ModelState, y récupère toutes les erreurs ModelItemException et les fusionne en une seule erreur. Ou vous pouvez avoir de telles exceptions pour implémenter quelque chose comme

public interface IItemError 
{ 
    public object ItemKey { get; set; } 
    public string Merge(params Exception[] itemErrors); 
} 

Sentez-vous libre d'améliorer cette idée.

Questions connexes