我试图在我的视图中仅显示日期部分,我从数据库获取的价值非常大,而且我真的不需要像hrs,mns,seconds等信息,我&# 39; m只对日期感兴趣,例如我只想显示:
17/04/2017
这是我迄今为止所尝试过的:
<td>
@Html.DisplayFor(modelItem => ((DateTime)item.ValidFrom).ToString("dd/MM/yyyy"))
</td>
<td>
@Html.DisplayFor(modelItem => ((DateTime)item.ValidTo).ToString("dd/MM/yyyy"))
</td>
这是我的属性的DateType:
public System.DateTime ValidFrom { get; set; }
public Nullable<System.DateTime> ValidTo { get; set;
这是我得到的问题: [![在此处输入图像说明] [1]] [1]
答案 0 :(得分:1)
直接输出
除了使用DisplayFor()
辅助方法之外,您可以考虑直接输出值,如果这对您有用:
<td>
@modelItem.ValidFrom.ToString("dd/MM/yyyy")
</td>
<td>
@modelItem.ValidTo?.ToString("dd/MM/yyyy")
</td>
考虑ViewModel级格式化
另一个可能更好的选择是在ViewModel本身内执行此操作,而不是在View中执行:
public System.DateTime ValidFrom { get; set; }
public Nullable<System.DateTime> ValidTo { get; set; }
// These will be formatted versions of the properties specifically for output
public string FormattedFrom => ValidFrom.ToString("dd/MM/yyyy");
public string FormattedTo => ValidTo?.ToString("dd/MM/yyyy") ?? "Present";
然后只需使用这些属性:
<td>
@Model.FormattedFrom
</td>
<td>
@Model.FormattedTo
</td>
答案 1 :(得分:0)
该解决方案在外观上可能并不理想,但我尝试过并为我工作。 您可以尝试将其用于更短和更短的时间。
@Html.FormatValue("yyy-MM-dd", item.date.ToString("yyy-MM-dd"))