如何从MVC中的DateTime变量中删除时间部分

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)

  • 并将DataFormatString更改为"{0:dd-MM-yyyy}" (3认同)