基本上我在我的MVC输出模型中有一个自定义的“Date”类“EndDate”。 仅供参考:“Date”类构建的是DateTime,但隐藏了时间功能。我为这个Date类型创建了一个显示模板,它很好地格式化了日期,但是在一次实例中(如下所示),如果对象为null(在本例中为EndDate),我希望文本“No End Date Specified”输出代替。是否可以在Html.DisplayFor调用中放置条件语句?
<%:Html.DisplayFor(m => m.EndDate)%>
为Date对象的所有实例,这就是常见的,我不能改变显示模板,我真的不希望改变模型本身无论是。基本上我想要的东西是这样的:
<%:Html.DisplayFor((m => (m.EndDate == null) ? "No End Date Specified" : m.EndDate)%>
上述可能以任何形式?如果不是,那么实现此功能的更好方法是什么? 我猜即使有办法做到这一点,如果这不是一个好主意,请让我知道为什么不这样做和更好的方式做到这一点
谢谢,我已经有了一个玩,并得到它的工作。我也看到“DisplayFor”也可以使用显示模板名称,所以我最终得到了以下内容,它不需要在模型中使用UIHint <%:Html.DisplayFor(m => m.EndDate ,“CustomDateNull”)%> – 2010-10-27 14:44:06
@Paul Hadfield太棒了!我没有看到DisplayFor超载,但这似乎是最好的选择。 – Jab 2010-10-27 15:04:47
当我遇到零赞成的接受答案时,它激起我的想法。 – jfar 2010-10-28 02:25:58