Я работаю в приложении ASP.NET MVC.У меня есть модель представления следующим образом:
public class SampleInterestViewModel
{
//Properties defined
//One such property that shows an error in ModelState is as follows
public DateTime? SampleDate { get; set; }
}
С точки зрения пользовательского интерфейса пользователь может ввести дату в виде ммддйййй.И когда пользователь вводит в таком формате, скажем, 01012001, мой кусок кода ModelState.IsValid в контроллере возвращает false.Когда я сделал быстрый просмотр в ModelState, я вижу ошибку для правильного «SampleDate», говорящую «Значение 01012001 недопустимо для SampleDate».
В моем связывателе моделей во время события OnModelUpdated я пытался отформатироватьзначение с 01012001 по 01.01.2001 и присвоение его обратно SampleInterestViewModel.SampleDate, полагая, что ModelState.IsValid может вернуть true без этой ошибки.Но все же ModelState.IsValid имеет значение false, и когда я заглянул в словарь ModelState, это конкретное свойство все еще содержит ошибки в своей коллекции.
Наконец я попытался отформатировать 01012001 и обновить значение 01/01/2001непосредственно к свойству SampleDate в словаре ModelState.Но все же ModelState.IsValid имеет значение false, показывая ту же ошибку для свойства SampleDate.Не могу понять, почему ModelState.IsValid работает и как и когда он установлен в false.
Если пользователь вводит 01012001 в пользовательском интерфейсе, мне все еще нужно отформатировать его в связывателе моделей по состоянию на 01.01.2001 и убедиться, что ModelState.IsValid имеет значение true, чтобы остальная часть кода моего контроллера могла работать какожидается.В пользовательском интерфейсе я делаю AjaxSubmit для публикации значения sampleDate.
Любые мысли или комментарии.