Атрибут DisplayFormat
(как следует из названия) используется только для отображения значения свойства в указанном формате. Это не имеет абсолютно никакого отношения к валидации.
В этом случае проверка выполняется связывателем модели по умолчанию, когда он пытается установить для строки POSTed свойство DateTime. Он использует локаль по умолчанию, которая может быть указана в вашем web.config
с помощью элемента globalization:
<system.web>
...
<globalization culture="de-DE" uiCulture="de-DE"/>
</system.web>
Причина, по которой ваш код не работает при развертывании его на экземпляре Azure, заключается в том, что, скорее всего, сервер настроен на использование культуры en-US
, для которой формат даты и времени отличается.
Если вы хотите использовать какой-то более конкретный формат, вы также можете написать пользовательское связующее для вашей модели представления, а внутри вручную проанализировать значение POSTed, используя этот специальный настраиваемый формат.