標籤

ASP.NET MVC (29) Visual C# (15) JQuery (10) Plugins (8) JQuery Plugins (6) JavaScript (6) MySQL (5) CSS (4) LinQ (4) Mac OS (4) CentOS (3) Design Pattern (3) Entity Framework (3) IIS (3) Python (3) Windows (3) php (3) Docker (2) LAMP (2) SQL Server (2) WCF (2) .NET (1) .NET Core (1) AWS (1) Browser (1) GIS (1) IE (1) Internet Security (1) Linux (1) Platform (1) React (1) SEO (1) Testing (1) VMware (1) Windows 7 (1) cookie (1) curl (1) laravel (1) phpBB (1) session (1) 中古屋 (1) 透天 (1) 閒言閒語 (1) 面試 (1) 鳥松 (1)

2011年3月29日 星期二

[ASP.NET MVC] Entity Model 中 DateTime資料型別在View的顯示格式問題

Keyword: ASP MVC TextBoxFor DateTime format
===================================
如果我們的Entity Model資料型態中有DateTime資料型別的欄位,則產生View後會自動產生:
<%: Html.TextBoxFor(model => model.Ondate, String.Format("{0:d}", Model.Ondate))%>
這樣的話產生出來的字串為:2011/3/29 下午 03:18:54

如果我們想自訂日期格式字串,例如只顯示2011/3/29 ,View中無論如何操作都無法變更,唯一的方法是:

1. 先自定義Entity Model中的MeteData


using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace XX.Models
{
    [MetadataType(typeof(ClassNowMetadata))]
    public partial class ClassNow
    {
        private class ClassNowMetadata
        {
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy/MM/dd}")]
            public DateTime Ondate { get; set; }
        }
    }  
}

2.在View中使用EditFor
<%: Html.EditorFor(model => model.Ondate)%>

搞定,收工~

沒有留言:

張貼留言