2011-09-09 16 views
3

ビューでdatetimeをフォーマットしようとしました。asp.net mvc3ビューでdatetimeをフォーマットする方法

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

ここにエラーメッセージがあります。

テンプレートは、フィールドアクセス、プロパティアクセス、1次元配列インデックス、または単一パラメータカスタムインデクサ式でのみ使用できます。

どうすれば修正できますか?

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

とあなたのビューであなたは、単にHtml.DisplayForメソッドを使用します:

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

をしたり、また、使用することができます

+1

この質問はこちらに回答しています。http://stackoverflow.com/questions/6001654/how-to-render-a-datetime-in-a-specific-format-in-asp-net-mvc-3 – kmcc049

+1

私自身の質問:@ item.PostDate.ToString( "dd MMM yyyy") – qinking126

答えて

4

あなたは[DisplayFormat]属性を使用してビューモデルプロパティを飾る

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

しかし、これが多くの場所にある場合、最初のアプローチはフォーマットが単一の場所に集中されるためです。

0

次の方法でDateTimeをフォーマットできます。完全な日付と時刻が表示されます。

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

このように表示に使用します。

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

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

つまり、あなたのDateTime書式設定されたフィールドの任意の部分をカットすることができます。

関連する問題