我在使用ASP.NET MVC 4尝试使用时间字段编写表单时遇到了问题。
型号:
class Abcde {
[DataType(DataType.Time)]
public DateTime ATime { get; set; }
}
View.cshtml
...
@Html.EditorFor(m => m.ATime)
@Html.ValidationMessageFor(m => m.ATime)
当我尝试输入时间(hh:nn:ss)时,验证总是失败,并说它不是正确的格式,所以我必须输入日期。
我的问题是我应该将类型更改为TimeSpan
吗?或者还有其他方法吗?
答案 0 :(得分:7)
[Required]
[DataType(DataType.Time)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:H:mm}")]
public DateTime Time { get; set; }`
试试这个,您可以按照您希望它为您工作的方式格式化DataFormatString,我现在在项目中使用它并且它为我工作。
答案 1 :(得分:1)
实际上这对我有用。
[DataType(DataType.Time)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm}")]
public DateTime Hour { get; set; }
答案 2 :(得分:0)
[Required]
[DataType(DataType.Time)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm}")]
public DateTime Time { get; set; }
此代码正确。但这仅在您使用EditorFor
而不是TextBoxFor
时有效。
答案 3 :(得分:-1)
[必填] [DataType(DataType.Time)] [DisplayFormat(ApplyFormatInEditMode = true,DataFormatString =“ {0: H H:mm}”)] 公共DateTime时间{get;组; }`
它也对我有用。我只用一个大写的H将小时更改为两位数。 谢谢krabos和Jorge L Hernandez。
Desse jeito funcionou para mim。阿拉伯联合酋长国 Obrigado krabos e Jorge L Hernandez。
答案 4 :(得分:-1)
使用:
[Required]
[DataType(DataType.Time)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm:ss}")]
public DateTime FieldTime{ get; set; }