好的,我不是在谈论商业逻辑决策,而是UI决策。
例如,我正在呈现一个表格,其中一列显示需要进行格式化的DateTime?属性。由于该值可为空,因此需要在格式化之前检查它是否为空。
如果我想要严谨一些,我会在我的ViewModel上有一个FormattedDate属性:
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被“格式化”属性淹没?