В настоящее время мы создаем пару полей ввода, которые будут содержать начало и конец datetime, по одному в каждом поле. У нас есть валидация в настоящее время, так что она выводит сообщение об ошибке, если пользователь ставит время начала после окончания времени (и наоборот) на время окончания до начала), однако мы столкнулись с интересной проблемой с этим.Проверка MVC - обновление другого поля?
Если пользователь, например, ставит конечное время до начала, мы получаем сообщение об ошибке в конечное время, как ожидалось.
Однако, если дата начала затем внесены изменения, в отличие от даты окончания, сообщение остается.
Есть ли способ, чтобы удалить обновления/исправления сообщения/проверки на другом поле? Вот код для проверки:
[Required(ErrorMessage = "{0} is required!")]
[Display(Name = "Start Date")]
[Remote("IsTestPlanEndCorrect", "Analysis", AdditionalFields = "EndDate", HttpMethod = "Post", ErrorMessage = "Test Plan Start Time must be before End.")]
public System.DateTime StartDate { get; set; }
[Required(ErrorMessage = "{0} is required!")]
[Display(Name = "End Date")]
[Remote("IsTestPlanEndCorrect", "Analysis", AdditionalFields = "StartDate", HttpMethod = "Post", ErrorMessage = "Test Plan End Time must be after Start.")]
public System.DateTime EndDate { get; set; }
IsTestPlanEndCorrect
это просто метод, который возвращает истину или ложь в зависимости, если передаваемые данные проходят проверку.
EDIT: Бритва код для полей:
<div class="form-group">
@Html.LabelFor(t => t.StartDate, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(t => t.StartDate, new { @class = "form-control datetimepicker", placeholder = "Enter Test Plan Start"})
@Html.ValidationMessageFor(t => t.StartDate)
</div>
</div>
<div class="form-group">
@Html.LabelFor(t => t.EndDate, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(t => t.EndDate, new { @class = "form-control datetimepicker", placeholder = "Enter Test Plan End"})
@Html.ValidationMessageFor(t => t.EndDate)
</div>
</div>
код проверки в контроллере:
[HttpPost]
public JsonResult IsTestPlanEndCorrect(DateTime EndDate, DateTime StartDate)
{
return Json(TimeManipulation.checkDate(StartDate,EndDate));
}
Что делает ваш код проверки 'IsTestPlanEndCorrect'? – Shyju
'Анализ' - это имя контроллера, который имеет метод' IsTestPlanEndCorrect' – Novastorm
Yea. Можете ли вы поделиться этим кодом? Когда вы удваиваете дату начала, делает ли это асинхронный вызов? – Shyju