asp.net mvc3如何在视图中格式化日期时间

时间:2011-09-09 01:41:29

标签: asp.net-mvc-3

我尝试在视图中格式化日期时间。

<span class="tag">
        @Html.DisplayFor(modelItem => item.PostDate.ToString("yyyy"))  
</span>

这是我收到的错误消息。

模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。

我该如何解决?

3 个答案:

答案 0 :(得分:4)

使用[DisplayFormat]属性装饰视图模型属性:

[DisplayFormat(DataFormatString = "{0:yyyy}", ApplyFormatInEditMode = true)]
public DateTime PostDate { get; set; }

在您的视图中,您只需使用Html.DisplayFor方法:

<span class="tag">
    @Html.DisplayFor(modelItem => item.PostDate)
</span>

或者您也可以使用:

<span class="tag">
    @item.PostDate.ToString("yyyy")
</span>

但如果你在很多地方都有这种方法,那么第一种方法更可取,因为格式将集中在一个地方。

答案 1 :(得分:0)

您可以按以下方式格式化DateTime。它显示完整的日期和时间。

[DisplayFormat(DataFormatString = "{0:g}", ApplyFormatInEditMode = true)]
public DateTime PostDate { get; set; }

然后像这样使用它进入View。

@Html.DisplayFor(model => model.PostDate)

答案 2 :(得分:0)

@Html.DisplayFor(modelItem => item.PostDate).ToString().Substring(5,4)

因此,您可以剪切DateTime格式化字段的任何部分。