Models Validation, Zmiana wartosci znaku.

0

Witam,

Mam metode ktora sprawdzxa czy w modelu wystepuje niewlasciwy znak.
Czy jest mozliwos zmiany tego znaku przy walidacji i zwrocenie modelu z nowa wartoscia.

Zamiast zwracac blad iz wartosc modelu jest bledna, chcial bym zastapic niewlasciwy znak.

Model:

 public class Product
    {
        public Int32 ProductID { get; set; }

        [Required]
        [StringLength(50, ErrorMessage = "Maximum length is 50 characters.")]
        [DisallowSpecialCharacters]
        public String Name { get; set; }

        [StringLength(50, ErrorMessage = "Maximum length is 50 characters.")]
        [DisallowSpecialCharacters]
        public String Description { get; set; }
    }
 

Custom Validation:

public class DisallowSpecialCharacters : ValidationAttribute
    {
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value == null)
                return ValidationResult.Success;

            if (value.ToString().Contains('\'') || value.ToString().Contains('#') || value.ToString().Contains('&')
                || value.ToString().Contains('/') || value.ToString().Contains('\\'))
            {
                return new ValidationResult("' # & \\ /  characters are not allowed.");
            }

            return ValidationResult.Success;
        }
    }
 

Dzieki.

0

Może tak?

private string name;
public String Name 
{ 
      get {return name;} 
      set
      {
           //jeśli value zawiera niedozwolone znaki podmień je
           name = ReplaceInvalidadeCharachters(value); //taka metoda oczywiście nie istnieje, musisz ją sam napisać
      } 
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1