2016-07-08 9 views
0

Ich lese und setze es zu Liste des Modells mit dem Code unten, Mein Problem ist, dass, obwohl ich Daten Annotation Attribute für mein Modell (Stadt) definiert haben, es nicht funktioniert.Datenanmerkungen funktionieren nicht für benutzerdefiniertes Modell

Zum Beispiel hier sind 3 Zeilen CSV-Datei:

CityName CityCode DistrictName ZipCode 
Adana 121 Alada? 1720 
Adana 1 Ceyhan 1920 
Adana 1 Ceyhan 1930 

Ich erwarte, dass Ausnahme in erster Linie tritt auf, weil Stadtcode „121“ ist, die zwischen 1-81 sein muss. Ich habe auch ModelState.IsValid ausprobiert; Für meinen Fall ergibt sich immer die Wahrheit. Wie kann ich garantieren, dass dieses Feld im gültigen Bereich ist?

public List<City> readFileToList(string filename, params KeyValuePair<string, object>[] queryparams) 
{ 
    string fullName = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data", filename); 
    string[] lines = System.IO.File.ReadAllLines(fullName); 
    List<City> cities = lines.Skip(1).Select(l => new City 
    { 
     name = l.Split(',')[0], 
     cityCode = Convert.ToInt32(l.Split(',')[1]), 
     district = l.Split(',')[2], 
     zipCode = l.Split(',')[3], 
    }).ToList(); 
    return cities; 
} 

und hier ist die Bestimmung des Modells:

public class City 
    { 
     [Required] 
     [StringLength(50)] 
     public string name { get; set; } 

     [Required] 
     [Range(0,81)] 
     public int cityCode { get; set; } 

     [Required] 
     [StringLength(60)] 
     public string district { get; set; } 

     [Required] 
     [Range(0, 99999)] 
     public string zipCode { get; set; } 
    } 

Antwort

0

Es gibt keinen Code Ihrer Klasse gültig ist oder jetzt sehen Wetter. Sie können so etwas schreiben:

public bool ValidateCity(City city,out List<ValidationResult> results)  
{ 
    var context = new ValidationContext(city); 
    results = new List<ValidationResult>(); 

    return Validator.TryValidateObject(city, context, results, true); 
} 

Sie Ausnahme auslösen kann, wenn diese Methode richtig ist und warum Ihr Modell in den Ergebnissen nicht gültig

Verwandte Themen