TBA*_*TBA 6 .net c# asp.net-mvc datetime razor
在我看来,我有一个日期字段(用于Jquery日期选择器),
@if (Model != null)
{
if (Model.SubmitStartDate == DateTime.MinValue)
{
Model.SubmitStartDate = null;
}
@Html.TextBoxFor(m => m.SubmitStartDate , new { @Id = "SubmitStartDate", @readonly = "readonly", @Value = @Model.SubmitStartDate})
}
Run Code Online (Sandbox Code Playgroud)
在我的模型中我有:
[Required(ErrorMessage = "Please select a start date")]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime? SubmitStartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是在UI中我加载10/07/2013 00:00:00,如何从中删除时间部分.另外我要求格式为"dd-mm-yy"的日期.有可能实现吗?
UPDATE
我按照答案编辑了我的代码,然后按照要求编写了代码,但是我遇到了问题.
当我使用@Html.EditorFor()
我的readonly
财产将不再工作.我也尝试DisplayFor
过,但是因为我将它用于J查询日期选择器,所以没有意义.有什么方法可以让那个领域只读?
更新代码:
@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})
}
Run Code Online (Sandbox Code Playgroud)
Ant*_*ton 15
您正在使用@Html.TextBoxFor()
将忽略您的DisplayFormat
属性的帮助程序.将其更改为a @Html.EditorFor()
并将应用您的DisplayFormat.
并获得您的格式:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yy}")]
public DateTime? SubmitStartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)