Html.EditorFor и пользовательский формат - PullRequest
6 голосов
/ 07 января 2011

В моей модели есть свойство, которое является DateTime. Я хотел бы получить пустой <input /> (вместо того, который содержит '0001-01-01 00: 00: 00' ), если свойство содержит DateTime.MinValue.

Это возможно?

Ответы [ 2 ]

7 голосов
/ 14 апреля 2011

Одним из решений, которое я нашел для себя работающим, было добавить строго типизированное частичное представление (для System.DateTime) и поместить его в каталог Views/Shared/EditorTemplates.Файл DateTime.cshtml выглядит примерно так:

@model System.DateTime
@Html.TextBox("", Model == DateTime.MinValue ? "" : Model.ToShortDateString())

Однако он отформатирует все ваши поля DateTime.

Дополнительную информацию можно найти в этой статье.

2 голосов
/ 07 января 2011

Напишите вспомогательное расширение метод:

public static class DateTimeHelper
{
    public static string MyEditor(this HtmlHelper helper, DateTime date)
    {
        if (date.Equals(DateTime.MinValue))
        {
            // return your an empty input: helper.TextBox ...
        }
        // return helper.EditorFor your datetime
    }
}

Тогда, с вашей точки зрения:

<%= Html.MyEditor(Model.YourDateTimeField) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...