ASP.NET MVC中的时间输入字段

时间:2013-04-13 09:42:40

标签: asp.net-mvc-4

我在使用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吗?或者还有其他方法吗?

5 个答案:

答案 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; }