2013-02-26 82 views
1

我有下面的代码我在哪里获取时间表格数据库,并通过模型MVC Razor视图--- datetime显示

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

显示在我看来,我要显示日期时间以用户友好的方式。所以如果在我的项目中保留一个函数来完成转换,我可以在.cshtml和dispaly中调用这个函数。

在我的情况跟你注解第二个答案

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

如何使用displayfor的lstcomment列表内按照乌拉圭回合的答案?

感谢

回答

4
<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) 
+0

Awsome ...谢谢。 Itz可以为空的字段,我不能重载字符串? – user2067567 2013-02-26 09:21:41

+0

这是使用自定义帮助器的另一个原因,您可以在应用转换之前测试该值是否不为空。或者简单地使用'[DisplayFormat]'属性来正确处理空值。 – 2013-02-26 09:24:35

+0

哇。第二个数据注释看起来很简单。更新了我的问题 – user2067567 2013-02-26 09:43:38

0

为什么不直接致电.ToString()?您可以根据需要传递格式。