Хорошо, я говорю не о принятии решений по бизнес-логике, а о решениях для пользовательского интерфейса.
Например, я рендеринг таблицы, и в одном столбце отображается DateTime? свойство, которое необходимо отформатировать. Поскольку значение может иметь значение NULL, я должен проверить, что оно не равно NULL перед форматированием.
Если бы я хотел быть педантичным, у меня было бы свойство FormattedDate в моей ViewModel:
public class MyViewModel
{
...
public DateTime? Date { get; set; }
public string FormattedDate
{
get
{
return this.Date.HasValue ? this.Date.Value.ToShortDateString() : "";
}
}
}
<%= Html.Encode(Model.FormattedDate) %>
Или я мог бы сэкономить несколько строк кода и просто дать ему пощечину:
<%= Html.Encode(Model.Date.HasValue ? Model.Date.Value.ToShortDateString() : "")%>
В этом случае, поскольку это то, что влияет только на представление, я бы сказал, что это нормально делать вторым способом (а также это более компактно), но где я могу провести черту между загромождением моего вида сервером и со своей моделью ViewModel загромождены свойствами «форматирования»?