Question

J'ai une classe d'utilisateurs partielle générée par Subsonic3 Active Record que j'ai développée avec certaines méthodes dans une classe partielle séparée.

Je voudrais savoir s'il est possible d'ajouter des annotations de données aux propriétés de membre d'une classe partielle où elle est déclarée à l'autre classe générée par Subsonic que j'ai essayée.

public partial class User
{
    [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
    public string Email { get; set; }

    ...
}

Ce que les exemples donnent au "Membre déjà défini" Erreur.

Je pense avoir déjà vu un exemple de ce que j'essaie de faire avec Dynamic Data et Linq2Sql.

Était-ce utile?

La solution

Vous devez créer un ' classe de contacts 'et appliquez les annotations de données à cette classe:

[MetadataType(typeof(UserValidation))]
public partial class User 
{
  ...
}

public class UserValidation
{
  [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
  public string Email { get; set; }
}

Autres conseils

Vous devriez créer une classe de copains comme expliqué ici par Scott Guthrie http: // blogs .asp.net / scottgu / archive / 2010/01/15 / asp-net-mvc-2-model-validation.aspx

Cela ne répondra pas directement à votre question, mais j'avais le même problème. Plutôt que d'utiliser DataAnnotations, j'ai utilisé le framework FluentValidation {0} avec un grand succès jusqu'à présent. Cela fonctionne bien car il fournit une grande partie des mêmes fonctionnalités, mais n'applique pas la validation en utilisant des attributs sur les membres de la classe. La validation se produit dans une classe complètement distincte qui agit sur la classe en cours de validation (à savoir, UserValidator).

{0}: http://fluentvalidation.codeplex.com/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top