Điều gì sai với điều sau đây?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date đang hiển thị 20/11/2005 12:00 sáng và tôi muốn hiển thị ngày 20 tháng 11 năm 2011
Điều gì sai với điều sau đây?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@ item.Date đang hiển thị 20/11/2005 12:00 sáng và tôi muốn hiển thị ngày 20 tháng 11 năm 2011
Câu trả lời:
Thử:
@item.Date.ToString("dd MMM yyyy")
hoặc bạn có thể sử dụng [DisplayFormat]
thuộc tính trên mô hình chế độ xem của mình:
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime Date { get; set }
và theo quan điểm của bạn chỉ đơn giản là:
@Html.DisplayFor(x => x.Date)
Đây là giải pháp:
@item.Published.Value.ToString("dd. MM. yyyy")
Trước khi ToString () sử dụng Giá trị .
@(item.DOB?.ToString("dd-MMM-yyyy"))
. Hoặc bằng cách sử dụng thuộc tính HasValue - @(item.DataDate.HasValue ? item.DataDate.Value.Date.ToString("dd MMM yyyy") : null)
. Trong cả hai trường hợp, thuộc tính phải là datetime có thể vô hiệu.
Hãy thử điều này trong MVC 4.0
@Html.TextBoxFor(m => m.YourDate, "{0:dd/MM/yyyy}", new { @class = "datefield form-control", @placeholder = "Enter start date..." })
Thuộc tính [DisplayFormat] chỉ được sử dụng trong EditorFor / DisplayFor và không được sử dụng bởi các API HTML thô như TextBoxFor. Tôi đã làm cho nó hoạt động bằng cách làm như sau,
Mô hình:
[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }
Lượt xem:
<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>
Sản lượng: 30/12/2011
Liên kết liên quan:
Mã dưới đây sẽ giúp bạn
@Html.Label(@item.Date.Value.ToString("dd - M - yy"))
Đối với Razor, hãy đặt tệp DateTime.cshtml vào thư mục Views / Shared / EditorTemplates. DateTime.cshtml chứa hai dòng và tạo ra một TextBox có định dạng ngày là 11/9/2001.
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
Tôi không thể làm cho điều này hoạt động hoàn toàn dựa trên các đề xuất ở trên. Bao gồm DataTypeAttribute [DataType(DataType.Date)]
dường như giải quyết được vấn đề của tôi, hãy xem:
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime RptDate { get; set; }
@Html.EditorFor(m => m.CLPosts.RptDate)
HTH
Đối với tất cả các giải pháp đã cho, khi bạn thử điều này trong một trình duyệt hiện đại (như FF) và bạn đã đặt đúng mô hình
// 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) wil render ( loại đầu vào được đặt thành ngày tháng dựa trên cài đặt ngày tháng trong mô hình của bạn!)
<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>
Và trình duyệt sẽ hiển thị
Để khắc phục điều này, bạn cần thay đổi loại thành văn bản thay vì ngày (cũng như nếu bạn muốn sử dụng lịch tùy chỉnh của mình)
@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control", @type = "text" } })