コードに実装したい。そのために、私は以下を持っています:
@Html.TextBoxFor(model => model.CreationDate, new { @type = "date" })
このコードは次のHTMLを生成します。
<input data-val="true" data-val-date="The field CreationDate must be a date."
data-val-required="The CreationDate field is required."
id="CreationDate" name="CreationDate" type="date"
value="09/05/2012 15:02:19">
Type = "date"はYYYY-MM-DD形式のデータを想定しているため、この値はWebページに表示されません。
日付のフォーマットを試みましたが、もちろん爆発します。
@Html.TextBoxFor(model => model.CreationDate.ToString("YYYY-MM-DD"),
new { @type = "date" })
TextBoxForメソッドを使用して、コンストラクトを適切に表示するにはどうすればよいですか?または、他の方法を使用する必要があります(すでにEditorForを試しましたが失敗しました)?
CreationDate
はDateTime型です。
これを試して;
@Html.TextBoxFor(model => model.CreationDate,
new { @type = "date", @Value = Model.CreationDate.ToString("yyyy-MM-dd") })
値を設定するときは、null
を処理する必要があります。
OR
Model
を変更できる場合は、これを試すことができます。
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime CreationDate{ get; set; }
そしてあなたのビューではEditorFor
ヘルパーを使用できます。
@Html.EditorFor(model => model.CreationDate, new { @type = "date" })
モデル設計:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime CreationDate{ get; set; }
デザインを見る:
<%: Html.EditorFor(m => m.CreationDate, new { @type = "date" }) %>
EditorForとbootstrap-datepickerライブラリで似たようなことをしました:
<div class="input-prepend date" id="startDate" [email protected] data-date-format="m/d/yyyy">
<span class="add-on"><i class="icon-calendar"></i></span>
@Html.EditorFor(m => m.StartDate)
</div>