Мне нужно убедиться, что дата и время действительны с проверкой.
Razor MVC3
Класс
[Range(typeof(DateTime), "1/1/1930", "1/1/2112",
ErrorMessage = "Value for {0} must be between {1} and {2}")]
public DateTime DOB { get; set; }
Редактировать форму просмотра
<span class="editor-field">
@Html.EditorFor(model => model.DOB)
@Html.ValidationMessageFor(model => model.DOB)
Проверка фиксирует недопустимую дату, но не устраняет ошибку привведена правильная дата, поэтому форма зависла.Кто-нибудь знает, как использовать Validation для проверки правильности даты и времени?
Спасибо, Джо
Обновлено действие контроллера
[HttpPost]
public ActionResult Create(Talent talent)
{
talent.Modified = talent.Created = DateTime.Now;
if (talent.DOB < DateTime.Now.AddYears(-100) || talent.DOB > DateTime.Now)
{
talent.DOB = DateTime.Parse("0001/01/01"); talent.Skill = "changed";
return View(talent); }
Окончательный контроллер и действие после
string errorMessageDOB = "DOB is out of range, it needs to be between " + DateTime.Now.AddYears(-100).ToShortDateString()
+ " and " + DateTime.Now.ToShortDateString() + ".";
//
// POST: /Talent/Create
[HttpPost]
public ActionResult Create(Talent talent)
{
talent.Modified = talent.Created = DateTime.Now;
if (talent.DOB < DateTime.Now.AddYears(-100) || talent.DOB > DateTime.Now)
{ ModelState.AddModelError(string.Empty, errorMessageDOB); }