У меня в классе модели есть свойство, которое выполняет преобразование типа следующим образом:
Модель:
public class TimeClass
{
private int timeInSeconds;
[Required]
public int Id {get;set;}
[Required]
public string Timer
{
get {
TimeSpan ts = new TimeSpan(0,0,(int)timeInSeconds);
return ts.ToString(@"mm\:ss",CultureInfo.InvariantCulture);
}
set {
try {
var ts = TimeSpan.ParseExact(value, @"mm\:ss", CultureInfo.InvariantCulture);
timeInSeconds= Convert.ToInt32(ts.TotalSeconds);
}
catch {
//Is it possible to add a validation error to the modelstate here
}
}
}
}
Контроллер:
[HttpPost]
public ActionResult Create(FormCollection collection)
{
string[] whitelist = new[] {"Id", "Timer" };
if (TryUpdateModel(quiz, whitelist))
{
//Save to Repo
return RedirectToAction("Edit", new { Id = Id });
}
return View(tc);
}
Каков подходящий шаблон для добавления соответствующей ModelError, если TimeSpan.Parse выдает исключение?
В настоящее время он выдаст общую ошибку «Значение« xxx »недопустимо». Как я могу настроить это, чтобы возвратить определенную ошибку?