2013-10-24 2 views
1

, когда свойство дата устанавливается в модели, это выполняется:Вывести строку вместо даты NULL

if (!(rdr["JobEnded"] is DBNull)) { job.JobEnded = (DateTime)rdr["JobEnded"]; } 

что приводит к job.JobEnded будучи 1/1/0001 12:00:00 AM.

Что я могу использовать вместо

@Html.DisplayFor(modelItem => item.JobEnded) 

показать "In Progress" вместо "1/1/0001 12:00:00 AM".

Я попытался поставить if/else в представлении, но смог отобразить действительную дату или ничего. Я уверен, что у меня отсутствует что-то действительно основное, так как это моя первая попытка просмотра APS.NET MVC.

ответ

2

Вы имеете дело с датами по умолчанию здесь, так, чтобы проверить его, вам нужно использовать:

@if (item.JobEnded == default(DateTime)) 
{ 
    @:In Progress 
} 
else 
{ 
    @Html.DisplayFor(m => item.JobEnded) 
} 

или в форме один-лайнер:

@((item.JobEnded == default(DateTime)) ? "In Progress" : Html.DisplayFor(m => item.JobEnded).ToString()) 
+0

Один вкладыш вызывает жалоба компилятора: Тип условного выражения не может быть определен, потому что нет никакого неявного преобразования между 'string' и 'System.Web.Mvc.MvcHtmlString' – Metaphor

+0

Отредактировано для добавления .ToString() - Html.DisplayFor (m => item.JobEnded) .ToString() – Metaphor

+0

Извините. Да, это всегда укусит меня без intellisense. –

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