2013-02-26 125 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()?您可以根據需要傳遞格式。