我正在开发一个 MVC 4 项目并尝试将 KeyValue 列表中的值转换为可为空的 DateTime。我在映射器中使用了以下行(我没有包括其他属性,因为有很多)
.ForMember(d => d.Deadline, m => m.ResolveUsing<DeadlineResolver>())
我的解析器如下所示:
public class DeadlineResolver : ValueResolver<Booking, DateTime?>
{
protected override DateTime? ResolveCore(Booking source, ResolutionResult resolutionResult)
{
KeyValue keyValue = source.KeyValues.FirstOrDefault(k => k.Key.KeyId == "DEADLINE");
return (keyValue != null) ? DateTime.Parse(keyValue.Value) : (DateTime?)null;
}
}
如下所示定义的deadline的值永远不会返回为null,而是返回DateTime.MinDate。当我在视图中绑定结果时,我需要它为空,这样我只在有日期时才显示一个值。
public DateTime? Deadline { get; set; }
如何在映射后不检查这些值以查找最小日期并设置为 null(我已实施临时黑客以便代码运行),而使这些值为 null?