Ответ 1
Все, что вам нужно сделать, это применить желаемый формат в вызове html, т.е..
@Html.TextBoxFor(m => m.RegistrationDate, "{0:dd/MM/yyyy}")
Вам не нужно указывать формат даты в классе модели.
Можно ли отобразить значение DateTime
в формате dd/mm/yyyy с помощью методов HTML Hepler
в Asp.NET MVC
? Я попытался сделать это, используя некоторые форматы в @Html.LabelFor
и добавив некоторые аннотации к связанному свойству, как показано ниже, но это не имеет никакого смысла. Любая помощь для решения этой проблемы будет оценена.
Модель:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> RegistrationDate { get; set; }
Все, что вам нужно сделать, это применить желаемый формат в вызове html, т.е..
@Html.TextBoxFor(m => m.RegistrationDate, "{0:dd/MM/yyyy}")
Вам не нужно указывать формат даты в классе модели.
После нескольких часов поиска я просто решил эту проблему несколькими строками кода
Ваша модель
[Required(ErrorMessage = "Enter the issued date.")]
[DataType(DataType.Date)]
public DateTime IssueDate { get; set; }
Страница бритвы
@Html.TextBoxFor(model => model.IssueDate)
@Html.ValidationMessageFor(model => model.IssueDate)
JQuery DatePicker
<script type="text/javascript">
$(document).ready(function () {
$('#IssueDate').datepicker({
dateFormat: "dd/mm/yy",
showStatus: true,
showWeeks: true,
currentText: 'Now',
autoSize: true,
gotoCurrent: true,
showAnim: 'blind',
highlightWeek: true
});
});
</script>
Файл Webconfig
<system.web>
<globalization uiCulture="en" culture="en-GB"/>
</system.web>
Теперь ваше текстовое поле примет формат "dd/MM/yyyy.
Я знаю, что это более старый вопрос, но для справки очень простой способ для форматирования дат без каких-либо аннотаций данных или любых других настроек выглядит следующим образом:
@Html.TextBoxFor(m => m.StartDate, new { @Value = Model.StartDate.ToString("dd-MMM-yyyy") })
Вышеуказанный формат, конечно, может быть изменен на любой.
Или просто используйте это на странице View (Razor)
@item.ResgistrationhaseDate.ToString(string.Format("dd/MM/yyyy"))
Я рекомендую не добавлять формат даты в класс модели
Так как вопрос был "дисплей":
@Html.ValueFor(model => model.RegistrationDate, "{0:dd/MM/yyyy}")
Вам нужно использовать html-помощник, и вам не нужно указывать формат даты в классе модели. e.x:
@Html.TextBoxFor(m => m.ResgistrationhaseDate, "{0:dd/MM/yyyy}")
Возможно, будет слишком поздно, чтобы ответить на этот вопрос в 2019 году. но я попробовал все ответы, и ни один не работал для меня. Поэтому я решил это просто так:
@Html.EditorFor(m => m.SellDateForInstallment, "{0:dd/MM/yyyy}",
new {htmlAttributes = new { @class = "form-control", @type = "date" } })
EditorFor
- это то, что сработало для меня.
Обратите внимание, что SellDateForInstallment
является объектом Nullable
datetime.
public DateTime? SellDateForInstallment { get; set; } // Model property