如何在asp.net mvc 5中格式化日期

时间:2014-10-11 04:42:01

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

我试图通过在模型类中设置但未获得所需结果来格式化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,请更正,谢谢

1 个答案:

答案 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>