2012-07-30 3 views
1

je les propriétés suivantes dans mon modèle de données:Utilisation d'annotations de données pour vérifier une valeur spécifique

[Required] 
[DataType(DataType.Text)] 
[Display(Name = "First Name")] 
public string FirstName { get; set; } 

[Required] 
[DataType(DataType.Text)] 
[Display(Name = "Last Name")] 
public string LastName { get; set; } 

Mon champ de saisie ont actuellement un porte-lieu en eux afin que, quand ils se concentrent sur la zone de texte du porte-place sera disparaissent à l'intérieur de la zone de texte, s'ils ne tapent rien alors la boîte de texte val ($(textbox).val()) est eqaul à "Prénom" ou "Nom de famille", comment puis-je vérifier cela pour qu'une erreur soit retournée dans ma validation dire "S'il vous plaît remplir le prénom/nom" si le FirstName ou LastName est égal à "Prénom" et "Nom de famille"

+0

double de http://stackoverflow.com/questions/6902187/set-initial-value-for-required-attribute – hatchet

Répondre

5

Vous devez écrire votre propre ValidationAttribute et l'utiliser sur vos propriétés

Exemple simple:

public sealed class PlaceHolderAttribute:ValidationAttribute 
{ 
    private readonly string _placeholderValue; 

    public override bool IsValid(object value) 
    { 
     var stringValue = value.ToString(); 
     if (stringValue == _placeholderValue) 
     { 
      ErrorMessage = string.Format("Please fill out {0}", _placeholderValue); 
      return false; 
     } 
     return true; 
    } 

    public PlaceHolderAttribute(string placeholderValue) 
    { 
     _placeholderValue = placeholderValue; 
    } 
} 

Utilisez-le sur votre propriété comme ceci:

[Required] 
[DataType(DataType.Text)] 
[Display(Name = "First Name")] 
[PlaceHolder("First Name")] 
public string FirstName { get; set; } 
Questions connexes