Удалите значение по умолчанию для ненулевых свойств при использовании EditFor [asp.net mvc 3] - PullRequest
1 голос
/ 02 марта 2011

Как удалить значение по умолчанию, которое по умолчанию добавляется в текстовые поля свойств, не допускающих значения NULL, при использовании помощника EditFor?Я не хочу такого поведенияустановит значение текстового поля на 1/1/0001 автоматически.Если вы используете «DateTime?» (Обнуляется), это не так, просто текстовое поле остается пустым.

Ответы [ 2 ]

2 голосов
/ 03 сентября 2011

Я должен был сделать что-то подобное для своих нужд. Я использовал это:

@model DateTime?

@Html.TextBox("", (Model.Value != default(DateTime) ? Model.Value.ToShortDateString() : string.Empty))

и это сработало очень хорошо для моих значений DateTime. Те, которые не имеют значения по умолчанию, являются пустыми, а те, которые имеют какое-либо другое значение DateTime, показывают представление объекта ShortDateString.

2 голосов
/ 03 марта 2011

Вы можете использовать UIHint для этого.

Создайте файл с именем ShortDate.cshtml в EditorTemplates

@model DateTime
@{ var value = Model == default(DateTime) ? null : Model.ToShortDateString(); }
@Html.TextBox(string.Empty, value)

Украсьте свое свойство с помощью UIHintAttribute, ссылающегося на наш EditorTemplate.Рассмотрим мой класс Order.

public class Order {
    [UIHint("ShortDate")]
    public DateTime Date { get; set; }
}

Когда вы используете

@Html.EditorFor(x => x.Date)

, следует избегать значения по умолчанию DateTime

caveat: я только что провел простые тесты, поэтому, пожалуйста,взгляните глубже.

надеюсь, это поможет вам

...