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

问题描述 投票:0回答:2

我试图在我的视图上只显示日期部分,我从数据库获取的值非常大,我真的不需要像hrs,mns,seconds等信息,我只对日期感兴趣,例如我想只显示:

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]

c# asp.net-mvc datetime format
2个回答
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>

0
投票

解决方案可能看起来不太好,但我尝试过并为我工作。您可以尝试使用它以获得更快更短的时间。

@Html.FormatValue("yyy-MM-dd", item.date.ToString("yyy-MM-dd"))
© www.soinside.com 2019 - 2024. All rights reserved.