回答:
試してください:
@item.Date.ToString("dd MMM yyyy")
または[DisplayFormat]
、ビューモデルの属性を使用できます。
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime Date { get; set }
そしてあなたの見解では単に:
@Html.DisplayFor(x => x.Date)
これが解決策です:
@item.Published.Value.ToString("dd. MM. yyyy")
ToString()の前にValueを使用します。
@(item.DOB?.ToString("dd-MMM-yyyy"))
。またはHasValueプロパティを使用する- @(item.DataDate.HasValue ? item.DataDate.Value.Date.ToString("dd MMM yyyy") : null)
。どちらの場合も、プロパティはnull可能な日付/時刻でなければなりません。
MVC 4.0でこれを試してください
@Html.TextBoxFor(m => m.YourDate, "{0:dd/MM/yyyy}", new { @class = "datefield form-control", @placeholder = "Enter start date..." })
[DisplayFormat]属性はEditorFor / DisplayForでのみ使用され、TextBoxForなどの生のHTML APIでは使用されません。私はそれを次のようにしてうまくいきました、
モデル:
[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }
見る:
<div id="IsLiquorLicenceDocumentOnPremisesYes" class="groupLongLabel">
@Html.LabelFor(m => m.LiquorLicenceDocumentIssueDate)
<span class="indicator"></span>
@Html.EditorFor(m => m.LiquorLicenceDocumentIssueDate)
<span id="validEmail"></span>
<br />
@Html.ValidationMessageFor(m => m.LiquorLicenceDocumentIssueDate)
</div>
出力:30/12/2011
関連リンク:
Razorの場合、ViewTimes / Shared / EditorTemplatesフォルダーにファイルDateTime.cshtmlを置きます。DateTime.cshtmlには2行が含まれており、2001年9月11日形式の日付を持つTextBoxを生成します。
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
上記の提案に基づいてこれを完全に機能させることはできませんでした。DataTypeAttributeを含める[DataType(DataType.Date)]
ことで問題が解決したようです。以下を参照してください。
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime RptDate { get; set; }
@Html.EditorFor(m => m.CLPosts.RptDate)
HTH
与えられたすべてのソリューションについて、これを最新のブラウザ(FFなど)で試して、正しいモデルを設定した場合
// Model
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime Start { get; set; }
// View
<div class="form-group">
@Html.LabelFor(model => model.Start, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control"} })
</div>
</div>
MVC(5)(レンダリングウィルタイプ入力のに設定された日付モデル内のあなたの日付設定に基づきました!)
<div class="col-md-10">
<input class="form-control text-box single-line" data-val="true" data-val-date="The field Start must be a date." data-val-required="The Start field is required." id="Start" name="Start" value="01-05-2018" type="date">
<span class="field-validation-valid text-danger" data-valmsg-for="Start" data-valmsg-replace="true"></span>
</div>
そして、ブラウザが表示されます
これを修正するには、タイプを日付ではなくテキストに変更する必要があります(カスタムカレンダーを使用する場合も同様)。
@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control", @type = "text" } })