Необходимо проверить DateTime со стороны сервера, используя проверку формы в MVC - PullRequest
0 голосов
/ 05 июня 2019

У меня есть проверка на стороне клиента, которая запрещает пользователю вводить дату только в определенном диапазоне, который 20 лет назад.Это работает нормально.Но проблема в том, что когда пользователь меняет время своего браузера на 1 год, тогда браузер позволяет вводить дату, диапазон которой превышает 20 лет.Мы используем MVC для этого.У нас есть 4 вкладки, где проверка должна происходить во 2-й форме, но вызов на стороне сервера происходит, когда мы сохраняем все формы в форме и вызываем серверную часть на последней вкладке.Как я могу добиться этого?

Я уже добавил некоторую проверку на стороне сервера, которая ограничивает пользователя со стороны сервера, но это происходит на последней вкладке, когда пользователь нажимает кнопку "Отправить".Я хочу, чтобы, когда пользователь нажимал кнопку «Далее» или, по крайней мере, сразу после того, как пользователь вводил значение даты на самой второй вкладке, я хочу, чтобы эта логика происходила.Код, который я попробовал, выглядит следующим образом:

var enrolledVal = Convert.ToDateTime(model.enrolledValue);
var a = (today.Year * 100 + today.Month) * 100 + today.Day;
var b = (enrolledVal.Year * 100 + enrolledVal.Month) * 100 + enrolledVal.Day;
var enrolledYears = (a - b) / 10000;
if (enrolledYears > 20)
{
var error = new JsonErrorModel { ErrorCode = -1, ErrorMessage = "Enrolled Date Exceeded 20 years"};
return Json(error);
}

1 Ответ

1 голос
/ 05 июня 2019

Я думаю, что это может помочь

Получить год для зарегистрированной даты:

var enrolledVal = Convert.ToDateTime(model.enrolledValue).Year;

Получить текущий год

var current = DateTime.Now.Year;

Найти разницу

var result = enrolledVal - current;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...