Установить Nullable DataTime + MVC + ADO Entity Framework - PullRequest
0 голосов
/ 31 мая 2011

У меня проблема с болью в заднице.См. Следующий код:

<%: Html.TextBoxFor(model => model.birth_date, new { @id = "datepicker")%>
<%: Html.ValidationMessageFor(model => model.birth_date)%>

Когда я отправляю форму, значение даты рождения - 01/01/0001 12:00:00 утра. Как мне остановить это?Мне нужно пустое текстовое поле.

У меня есть это в моей модели:

[MetadataType(typeof(Person_Validation))]
public partial class Person{
        }


public class Person_Validation{ 

[Required(ErrorMessage = "Needed Date")]
[DataType(DataType.Date, ErrorMessage = "Please this format: dd/mm/yyyy")]

public DateTime? birth_date{
                    get;
                    set;
                }
    }

Некоторые люди говорили мне, что мне нужно только добавить отметку (?) Или Nullable в Datatime, но ясделал это.

public DateTime?дата рождения, и не работает для меня.Пожалуйста, мне нужна ваша помощь !!

Также я должен сказать, что основная модель Person была сгенерирована ADO Entity Framework

1 Ответ

0 голосов
/ 31 мая 2011

Три возможности:

  1. Измените поле даты в базе данных на nullable, а затем восстановите EDMX.

  2. Я полагаю, вашЕсли вы используете Sql Server, вы можете изменить поле даты с datetime на datetime2.

  3. Вы можете перехватить дату рождения в пользовательском интерфейсе, прежде чем она будет отображена для пользователя, и проверить DateTime.MinValue

    if (model.birth_date == DateTime.MinValue) {... творить магию.}

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