1

EditFor ヘルパーを使用するときに、null 非許容プロパティのテキスト ボックスにデフォルトで追加されるデフォルト値を削除するにはどうすればよいですか? その振る舞いはしたくない

編集

申し訳ありませんが、十分な情報を提供できませんでした。

たとえば、DateTime であるプロパティで Html.EditorFor を使用すると、テキスト ボックスの値が自動的に 1/1/0001 に設定されます。"DateTime?"(nullable) を使用すると、テキスト ボックスが空のままになります。

4

2 に答える 2

2

UIHintを使用してそれを行うことができます。

EditorTemplatesでShortDate.cshtmlというファイルを作成します

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

EditorTemplateを参照するUIHintAttributeでプロパティを装飾します。私の注文クラスを考えてみましょう。

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

使用する場合

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

DateTimeのデフォルト値を回避する必要があります

注意:私は簡単なテストを行っただけなので、詳しく調べてください。

それがあなたに役立つことを願っています

于 2011-03-03T00:40:02.577 に答える
2

私は自分のニーズのためにこのようなことをしなければなりませんでした。私はこれを使用しました:

@model DateTime?

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

そして、それは私の DateTime 値に対して非常にうまく機能しました。デフォルト値を持たないものは空白で、他の DateTime 値を持つものは、オブジェクトの ShortDateString 表現を示します。

于 2011-09-03T00:07:26.873 に答える