Domanda

Ho un Subsonic3 Active Record generato classe User parziale che ho esteso con alcuni metodi in una classe parziale separata.

Vorrei sapere se è possibile aggiungere Annotazioni dati alle proprietà del membro su una classe parziale in cui è dichiarato sull'altra Subsonic Generated che ho provato.

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

    ...
}

Che esempi forniscono il Membro " è già definito " errore.

Penso di aver visto un esempio qualche tempo fa di ciò che sto cercando di fare con Dynamic Data e Linq2Sql.

È stato utile?

Soluzione

Quello che dovrai fare è creare un ' classe di amici 'e applica le Annotazioni di dati a quella 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; }
}

Altri suggerimenti

Dovresti creare una classe di amici come spiegato qui da Scott Guthrie http: // weblogs .asp.net / ScottGu / archive / 2010/01/15 / asp-net-MVC-2-model-validation.aspx

Questo non risponderà direttamente alla tua domanda, ma ho avuto lo stesso problema e, piuttosto che utilizzare DataAnnotations, ho usato il framework FluentValidation {0} con grande successo finora. Funziona bene perché fornisce molte delle stesse funzionalità, ma non applica la convalida usando gli attributi sui membri della classe. La convalida avviene in una classe completamente separata che agisce sulla classe in corso di convalida (ovvero UserValidator).

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top