如何在ASP.NET MVC中仅显示View上的DATE部分

时间:2017-04-17 21:12:32

标签: c# asp.net-mvc datetime format

我试图在我的视图中仅显示日期部分,我从数据库获取的价值非常大,而且我真的不需要像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]

2 个答案:

答案 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"))