我对此很陌生,我正在使用具有Datetime
类型属性的MVC视图模型:
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:44 AM 和SQL数据库内部相同。
我真的不知道如何在Date
类中配置NewSession
以在我的Textbox中自动显示这样的内容,并且当映射回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);
}
}
}
答案 0 :(得分: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 Server中的存储方式 - 它将存储为日期,而不是字符串。您可以使用T / SQL中的FORMAT()
函数在存储过程中格式化该日期等。如果您没有MSSQL 2012,则可以使用DATEPART()
或CONVERT()
函数。