2014-10-11 2 views
1

Я пытаюсь отформатировать дату в 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> 

Пожалуйста, исправьте, если IAM недостающее amything в моем коде, благодаря

ответ

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> 
+0

Спасибо для приятного объяснения :) – user3004110

Смежные вопросы