Подтвердить что ты не робот

Отображать значение DateTime в формате dd/mm/yyyy в Asp.NET MVC

Можно ли отобразить значение 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; }
4b9b3361

Ответ 1

Все, что вам нужно сделать, это применить желаемый формат в вызове html, т.е..

@Html.TextBoxFor(m => m.RegistrationDate, "{0:dd/MM/yyyy}")

Вам не нужно указывать формат даты в классе модели.

Ответ 2

После нескольких часов поиска я просто решил эту проблему несколькими строками кода

Ваша модель

      [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.

Ответ 3

Я знаю, что это более старый вопрос, но для справки очень простой способ для форматирования дат без каких-либо аннотаций данных или любых других настроек выглядит следующим образом:

@Html.TextBoxFor(m => m.StartDate, new { @Value = Model.StartDate.ToString("dd-MMM-yyyy") })

Вышеуказанный формат, конечно, может быть изменен на любой.

Ответ 4

Или просто используйте это на странице View (Razor)

@item.ResgistrationhaseDate.ToString(string.Format("dd/MM/yyyy"))

Я рекомендую не добавлять формат даты в класс модели

Ответ 5

Так как вопрос был "дисплей":

@Html.ValueFor(model => model.RegistrationDate, "{0:dd/MM/yyyy}")

Ответ 6

Вам нужно использовать html-помощник, и вам не нужно указывать формат даты в классе модели. e.x:

@Html.TextBoxFor(m => m.ResgistrationhaseDate, "{0:dd/MM/yyyy}")

Ответ 7

Возможно, будет слишком поздно, чтобы ответить на этот вопрос в 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