2016-09-27 6 views
0

У меня есть ViewModel, который отображает мой столУдалить время в LINQ запрос контроллера с моделью, которая имеет атрибут DateTime

Model

public DateTime? startdate { get; set; } 

Контроллер

var regions = from r in _odb.REGION_MSTR 
       select new RegionModel 
       { 
        regionid = r.REG_ID, 
        regionname = r.REG_NAME, 
        status = (r.INACTV_DT == null ? "Active" : "Inactive"), 
        startdate = r.STRT_DT 
       }; 

Просмотр

<tbody id="dbBody"> 
    @foreach (var item in Model) 
    { 
     <tr> 
      ... 
      <td class="hidden"> 
       @Html.DisplayFor(modelItem => item.startdate) 
      </td> 
     </tr> 
    } 
</tbody> 

Отобразится 9/16/2016 12:00:00 AM. Как удалить 12:00:00 AM? Я попытался использовать DbFunctions.TruncateTime (r.STRT_DT), но все же получаю дату со временем.

+7

Добавить '[DisplayFormat (DataFormatString = "{0: ММ/дд/гггг}")]' атрибут к свойству –

+1

Да, согласно предложению @StephenMuecke просто добавить свойство 'startdate' –

+0

@ StephenMuecke Вы снова! Вы никогда не отвечали на все мои вопросы :) Это сработало, спасибо человеку! –

ответ

0

Вы можете попробовать это

@Html.DisplayFor(m => m.startdate, "{0:dd/MM/yyyy}") 

Источник: Display DateTime value in dd/mm/yyyy format in Asp.NET MVC

+1

OP не хочет текстового поля –

+0

Отредактировано .. спасибо –

+2

'DisplayFor()' не имеет перегрузка, которая принимает строку формата :) –

0

попробовать это в вашем контроллере

startDate = r.strt_DT.Date 

Формат использовать

StartDate = r.strt_DT.Date 

попробуйте л икэ это

EntityFunctions.TruncateTime(x.StartDate) == r.strt_DT.Date 
+0

Я пробовал это раньше и имел эту ошибку: «Указанный член типа« Дата »не поддерживается в LINQ to Entities. Поддерживаются только инициализаторы, сущности и свойства навигации сущности. ' –

+0

Я редактирую свой ответ, пожалуйста, посмотрите –