1

私はこれにかなり慣れていません.typeのプロパティを持つMVCビューモデルを使用していますDatetime:

namespace FP.WebUI.Models
{
    public class AdminSessionsViewModel
    {
        NewSession _NewSession = new NewSession();
        public NewSession NewSession { get { return _NewSession; } set { _NewSession = value; } }
        public IEnumerable<Sessions> CurrentSessions { get; set; }
    }

    public class NewSession
    {
        [Required]
        public string Title { get; set; }
        public string Description { get; set; }
        [Required]
        public DateTime Date { get; set; }
    }
}

プロパティを次の形式にしたいDate: 27/05/2013 06:44AMと SQL データベース内で同じ。

Dateクラス内でテキストボックス内にこのように自動的に表示されるように構成する方法が本当にわかりませんNewSession.Entity Frameworkにマップされると、このようにデータベース内に保存されます.

これが私のエンティティフレームワークの流暢なAPI構成です:

namespace FP.Domain.Configurations
{
    public class SessionsConfig : EntityTypeConfiguration<Sessions>
    {
        public SessionsConfig()
        {
            ToTable("Sessions");
            Property(p => p.Name).IsRequired();
            Property(p => p.PhotosCount).IsRequired();
            Property(p => p.CoverPhoto).IsRequired();
            Property(p => p.Date).HasColumnType("datetime2").HasPrecision(0);
        }
    }
}
4

1 に答える 1

2

[DisplayFormat]DateTime プロパティに属性を追加する必要があります。これでユーザー インターフェイスが処理されます。この回答を参照してください: Converting DateTime format using razor

[Required]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy hh:mm tt}", ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }

日時が SQL サーバーに格納される方法を制御する必要はありません。文字列ではなく、日付として格納されます。T/SQL で関数を使用FORMAT()して、ストアド プロシージャなどでその日付をフォーマットできます。MSSQL 2012 がない場合は、DATEPART()またはCONVERT()関数を使用できます。

于 2013-04-03T16:53:14.263 に答える