TextBoxFor<,>(expression, htmlAttributes) を使用して、DateTime の日付部分のみをテキスト ボックスに表示する際に問題が発生しています。
モデルは Linq2SQL に基づいており、フィールドは SQL およびエンティティ モデル内の DateTime です。
失敗した:
<%= Html.TextBoxFor(model => model.dtArrivalDate, String.Format("{0:dd/MM/yyyy}", Model.dtArrivalDate))%>
このトリックは非推奨のようで、オブジェクト htmlAttribute 内の文字列値はすべて無視されます。
失敗した:
[DisplayFormat( DataFormatString = "{0:dd/MM/yyyy}" )]
public string dtArrivalDate { get; set; }
詳細/編集ビューに「00:00:00」部分を除いた日付部分のみを保存して表示したいと思います。
ベストアンサー1
MVC4 では、文字列形式のパラメータを受け取る新しいオーバーロードを追加することでこの問題を解決しましたTextBoxFor
。次のように簡単に実行できます。
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}")
HTML 属性を受け取るオーバーロードもあるので、CSS クラスを設定したり、日付ピッカーを接続したりすることができます。
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}", new { @class="input-large" })