2

モデルにBornDateプロパティを持つPersonクラスがあります。

[DisplayName("Born Date")]
public DateTime? BornDate { get; set; }

私は自分の見解でこのフィールドを次のように使用します

<td style="white-space:nowrap">
    <%= Html.LabelFor(model => model.BornDate)%>
    <br />
    <%= Html.TextBoxFor(model => model.BornDate, new { id = "bornDate" })%>
    <%= Html.ValidationMessageFor(model => model.BornDate, "*")%>
</td>

問題は、BornDateテキストボックスを使用してPersonインスタンスを編集しているときに、次のようにフォーマットされることです。

dd/MM/yyyy hh.mm.ss

時間部分( "dd / MM / yyyy")なしでフォーマットしたいのですが。null許容フィールドであるため、フォーマット文字列でtoStringメソッドを使用できません。

私に何ができる?

4

5 に答える 5

11

Valueを使用できるはずです。最初にnullでないことを確認してください。

var displayDate = model.BornDate.HasValue ? model.BornDate.Value.ToString("yyyy") : "NoDate";
于 2010-09-10T11:20:49.437 に答える
9

私はこれが非常に遅いことを知っていますが、私は別の問題を調査していて、この問題に遭遇しました。プレゼンテーション層のフォーマットを必要としない日付部分のみを表示する方法があります。

[DisplayName("Born Date")]
[DataType(DataType.Date)]
public DateTime? BornDate { get; set; }

これを使用すると、ビューのこのプロパティにバインドするすべての場所で、日付のみが表示されます。

これが誰かに役立つことを願っています

于 2011-01-31T11:29:30.657 に答える
6

VIEWでこれを行うには、Razor構文を使用することもできます。

@ Html.TextBox( "BornDate"、item.BornDate.HasValue?item.BornDate.Value.ToShortDateString(): "") 
于 2011-10-28T16:34:37.817 に答える
2

これを行うことができます。Nullableモデルタイプで機能します。

@model DateTime?
@{
    object txtVal = "";
    if (Model.HasValue) 
    {
        txtVal = Model.Value;
    };
}
@Html.TextBoxFor(x => Model, new {Value = string.Format(ViewData.ModelMetadata.EditFormatString, txtVal))
于 2011-04-06T09:04:23.000 に答える
0

この問題に取り組んだもう1つの方法は、TextBoxForにフォーマットを追加することです。

@Html.TextBoxFor(model => model.BornDate, "{0:MM/dd/yyyy}", new { id = "bornDate" })
于 2019-06-21T13:13:44.817 に答える