6

私の見解では、日付フィールド (Jquery Date Picker に使用される) があります。

@if (Model != null)
{
  if (Model.SubmitStartDate == DateTime.MinValue)
  {
    Model.SubmitStartDate = null;
  }                    
  @Html.TextBoxFor(m => m.SubmitStartDate , new { @Id = "SubmitStartDate", @readonly = "readonly", @Value = @Model.SubmitStartDate})
} 

私のモデルには次のものがあります:

[Required(ErrorMessage = "Please select a start date")]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime? SubmitStartDate { get; set; }

ただし、UI では10/07/2013 00:00:00 on load を取得します。これから時間部分を削除するにはどうすればよいですか。また、「dd-mm-yy」形式の日付が必要です。達成することは可能ですか?

アップデート

回答に従ってコードを編集し、要件に従って動作させましたが、問題が発生しました。

@Html.EditorFor()私が自分の財産を使用すると、readonlyそれ以上機能しなくなります。私も試してみましたが、J-query Date PickerDisplayForに使用していたので意味がありません。そのフィールドを読み取り専用にする方法はありますか?

更新されたコード:

@if (Model != null)
{
  if (Model.SubmitStartDate == DateTime.MinValue)
  {
    Model.SubmitStartDate = null;
  }                    
  @Html.EditorFor(m => m.SubmitStartDate , new { type = "date", @Id = "SubmitStartDate", @readonly = "readonly", @Value = @Model.SubmitStartDate})
} 
4

2 に答える 2

0

Chrome と IE の両方で機能するために、データ注釈を通常フォーマットする方法を次に示します。

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime StartDate { get; set; }

@Html.EditorFor(m => m.StartDate, new { type = "date" })
于 2013-07-09T14:22:54.483 に答える