ASP.net MVC Аннотации данных Значение по умолчанию DateTime - PullRequest
6 голосов
/ 04 декабря 2010

В моей модели просмотра у меня есть следующий атрибут:

 [Required]
 [DataType(DataType.Date, ErrorMessage="Please enter a valid date in the format dd/mm/yyyy")]
 [Display(Name = "Date of Birth")]
 public DateTime DOB { get; set; }

На мой взгляд, у меня есть следующее:

<div class="editor-label">
    @Html.LabelFor(model => model.DOB)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.DOB)
    @Html.ValidationMessageFor(model => model.DOB)
</div>

Перед отправкой формы значением по умолчанию для DOB является 1/01/0001. Как мне остановить автоматическое заполнение этого значения, я просто хочу пустое поле, когда люди посещают эту форму?

Ответы [ 3 ]

7 голосов
/ 04 декабря 2010

Я полагаю, вам придется использовать обнуляемый DateTime?тип.DateTime не может быть нулевым, поэтому оно всегда будет иметь значение.

6 голосов
/ 04 декабря 2010

Попробуйте сделать DOB DateTime обнуляемым, например, @Mayo:

public DateTime? DOB { get; set; }
1 голос
/ 25 марта 2014

DateTime имеет тип struct. Таким образом, по умолчанию DateTime не может быть нулевым. Значение по умолчанию равно 01/01/0001. Решение вашей проблемы заключается в использовании обнуляемого DateTime? тип. Если вы хотите, чтобы по умолчанию было какое-то значение, например «01/01/2014», вы можете присвоить значение следующим образом: DOB = новый DateTime (2014, 01, 01);

...