Answers:
尝试:
@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,将文件DateTime.cshtml放在Views / Shared / EditorTemplates文件夹中。DateTime.cshtml包含两行,并生成日期格式为9/11/2001的TextBox。
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
通常,写入的月份以MMM形式转义,而4位数的年份是yyyy,因此格式字符串应类似于“ dd MMM yyyy”
DateTime.ToString("dd MMM yyyy")
对于所有给定的解决方案,当您在现代浏览器(如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" } })