我试图通过在模型类中设置但未获得所需结果来格式化asp.net MVC 5中的日期。请查看以下日期:
10/10/2010 12:00:00 AM
我想以下列格式更改上述日期: -
OCT-10-2014
请查看下面的模型类
[DisplayFormat(DataFormatString = "{0:MMM-dd-yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage = "Date is required")]
public DateTime? DateOfBirth { get; set; }
上述代码未按要求的格式进行格式化。还可以在下面查看我的代码,如下表所示。
foreach (var m in Model)
{
<tr style="height: 22px; border-bottom: 1px solid silver">
<td style="width: 150px">@m.StudentId</td>
<td style="width: 150px">@m.FirstName</td>
<td style="width: 150px">@m.LastName</td>
<td style="width: 150px">@m.DateOfBirth</td>
</tr>
所以我也尝试了下面的代码,但仍无效。
<td style="width: 150px">@m.DateOfBirth.ToString("MMM/dd/yyyy")</td>
如果我的代码中缺少amything,请更正,谢谢
答案 0 :(得分:4)
首先应用DisplayFormat
属性[DisplayFormat(DataFormatString = "{0:MMM-dd-yyyy}"
仅在您使用@Html.DisplayFor()
或@Html.Display()
帮助程序时才有效。所以你可以使用
<td style="width: 150px">@Html.DisplayFor(model => m.DateOfBirth)</td>
注意,如果适用,您可能还想使用NullDisplayText="SomeValue"
其次,DateOfBirth
可以为空,所以如果你不使用帮助,那么DateOfBirth.ToString("MMM/dd/yyyy")
应该是
<td style="width: 150px">@(Model.DateOfBirth.HasValue ? Model.DateOfBirth.Value.ToString("MMM-dd-yyyy") : "SomeValue")</td>