首页 > 解决方案 > 当类不是视图模型时,将格式应用于视图中的 DateTime 属性的最佳方法?

问题描述

当类是视图模型时,似乎是这样做的:

public class Model 
{
   [DisplayFormat(DataFormatString="{0:dd/MM/yyyy}")]
   public DateTime MyDate { get; set; }
}

然后在视图中使用 @Html.DisplayFor() :

<div>The date is @Html.DisplayFor(model => model.MyDate)</div>

在我的情况下,我正在循环一个这样的数组:

@foreach(var topic in topics)
    {
    <tr>
        <td><a asp-controller="Topic" asp-action="Index" asp-route-id="@topic.Id">@topic.Subject</a> by @topic.Firstpost.User.UserName (@topic.Firstpost.PostStamp)</td>
        <td class="number">@topic.RepliesCount</td>
        <td class="number">@topic.ViewCount TOPIC TYPE: @topic.GetType()</td>
        <td>by @topic.LastPost.User.UserName (@topic.LastPost.PostStamp)</td>
    </tr>
    }

Topic 类不是模型类,因此不能使用 @Html.DisplayFor() 。最好的方法是什么?

标签: c#asp.net-core.net-coreasp.net-core-mvc

解决方案


改用 string.Format :

<td>@string.Format("{0:MM/dd/yyyy}", topic.topicDate)</td>

推荐阅读