0
以下のコードでモデルのリストを読み込んで設定します。私のモデル(都市)のデータアノテーション属性を定義していますが、それは機能しません。私は都市コードは1~81の間でなければならない「121」であるため、例外は最初の行で発生する期待データアノテーションがカスタムモデルでは機能しない
CityName CityCode DistrictName ZipCode
Adana 121 Alada? 1720
Adana 1 Ceyhan 1920
Adana 1 Ceyhan 1930
:例えば
は、ここでは、CSVファイルの3行です。私もModelState.IsValidを試しました。私の場合は常に真実を返します。このフィールドが有効範囲内にあることをどのように保証できますか?
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;
}
とこちらのモデルの定義である:
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; }
}