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; }
}