MVC DateFormat简短

时间:2015-05-06 10:46:10

标签: c# asp.net-mvc

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: dd-mm-yyyy}")]
public DateTime DateProcessed { get; set; }

这是我的Data Model,它的给予是01/01/2015

但我需要这种格式January/01/2015结果。

我尝试过使用ToShortDateString()。但我有

  

错误模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。

尽可能多。我希望它在模型中而不是使用View。但如果它无法提供帮助。

什么都有效。

2 个答案:

答案 0 :(得分:4)

试试这个;

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: MMMM/dd/yyyy}")]
public DateTime DateProcessed { get; set; }

参考:here

但是,如果你坚持使用单个日期格式,你也可以“破解”你的视图而不触及模型。

像这样;

<div>
  <dl class="dl-horizontal">
     <dt>@Html.DisplayNameFor(model => model.DateProcessed)</dt>
     <dd>@Html.DisplayFor(model => model.DateProcessed)</dd>
  </dl>
</div>

而成;

<div>
  <dl class="dl-horizontal">
     <dt>@Html.DisplayNameFor(model => model.DateProcessed)</dt>
     <dd>
         @{string formattedDate = Model.DateProcessed.ToString("MMMM/dd/yyyy");}
         @Html.DisplayFor(model => formattedDate)
     </dd>
  </dl>
</div>

将以正确的格式显示日期。

答案 1 :(得分:0)

试试这个:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: MMMM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime DateProcessed { get; set; }

如果您不在模型类中使用日期格式,请尝试下面的:

首先将日期属性设置如下

public Nullable<System.DateTime> DateProcessed { get; set; }

然后你的查看就像这样:

@Html.TextBoxFor(m => m.DateProcessed,"{0: MMMM/dd/yyyy}", placeholder = "MMMM/dd/yyyy" })