Ответ 1
Попробуйте пометить его:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
У меня есть этот атрибут в моей модели просмотра:
[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }
Если я хочу отобразить дату или заполнить текстовое поле с датой, у меня есть следующие данные:
<%: Model.StartDate %>
<%: Html.TextBoxFor(m => m.StartDate) %>
Всякий раз, когда отображается дата, она отображается следующим образом: 01/01/2011 12:00:00 AM
Но я бы хотел показать только 01/01/2011
Есть ли способ применить формат отображения с аннотациями данных? Я не хочу, чтобы каждый раз, когда я показываю дату, добавляю код для его форматирования.
Попробуйте пометить его:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
Вы попробовали это?
[DataType(DataType.Date)]
В mvc 4 вы можете легко сделать это, как после использования TextBoxFor
..
@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })
Таким образом, вам не нужно использовать аннотацию данных в модели или классе модели просмотра
Если ваше поле данных уже является типом данных DateTime, вам не нужно использовать [DataType(DataType.Date)]
для аннотации; просто используйте:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
в jQuery, используйте datepicker для вашего календаря
$(document).ready(function () {
$('#StartDate').datepicker();
});
на вашем HTML, используйте EditorFor
helper:
@Html.EditorFor(model => model.StartDate)
Применить DataAnnotation как:
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
Используйте это, но это полное решение:
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
Используйте EditorFor вместо TextBoxFor
После комментариев
// [DataType(DataType.DateTime)]
Используйте атрибут аннотации данных:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
ШАГ-7 следующей ссылки может помочь вам...
http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html
установите свою собственность, используя приведенный ниже код во время создания модели. Я думаю, что ваша проблема будет решена. И время не отображается в базе данных. Вам не нужно добавлять какие-либо аннотации.
private DateTime? dob;
public DateTime? DOB
{
get
{
if (dob != null)
{
return dob.Value.Date;
}
else
{
return null;
}
}
set { dob = value; }
}
Это работает для меня
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
[ТипДанный (DataType.Date)] [DisplayFormat (DataFormatString = "{0: MM/dd/yyyy}", ApplyFormatInEditMode = true)]