1

我有一个下面的代码,我在其中获取时间表单 DB 并通过模型显示在我的视图中

 <div class="comment_time">@item.dTime</div> 

我想以用户友好的方式显示 DateTime。因此,如果在我的项目中保留一个函数来进行转换,我该如何在我的 .cshtml 中调用它并显示。

在我的场景中使用注释为您提供第二个答案

foreach (var item in Model.lstCommet)
   {
 <div class="comment_body">@item.comments</div> 
  <div class="comment_time">@item.dTime</div>
    }

根据您的回答,我如何displayfor在 lstcomment 列表中使用?

谢谢

4

2 回答 2

5
<div class="comment_time">@item.dTime.ToString("dd/MM/yyyy")</div> 

如果您想在视图中调用自定义函数,这些函数在 ASP.NET MVC 中有一个名称。它们被称为 html 助手。所以你可以编写一个自定义的 html 助手:

public static class HtmlHelperExtensions
{
    public static IHtmlString MyFunction(this HtmlHelper html, DateTime value)
    {
        return new HtmlString(value.ToString("dd/MM/yyyy"));
    }
}

然后在你的视野内:

<div class="comment_time">@Html.MyFunction(item.dTime)</div> 

另一种可能性是使用属性简单地装饰视图模型上的[DisplayFormat]属性:

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

然后在您的视图中使用DisplayFor帮助器:

@Html.DisplayFor(x => x.dTime)
于 2013-02-26T09:08:03.460 回答
0

为什么不直接打电话.ToString()?您可以传递所需的格式。

于 2013-02-26T09:08:47.640 回答