asp.net-mvc – Asp.net MVC中的TimeSpan和“24:00”解析错误

我的Web应用程序中有一个模态对话框,用户可以在00:00到24:00之间输入时间范围.范围滑块用于选择此范围.

一切都按预期工作,除非用户设置正确的范围句柄以使其值为24:00默认模型绑定器无法解析此TimeSpan.

public class Timing
{
    public TimeSpan Starts { get; set; }
    public TimeSpan Ends { get; set; }
}

我被发送回服务器的对象有一个IList< Timing>属性.

所以.问题只是字符串值“24:00”无法解析为TimeSpan实例.是否有可能说服默认模型绑定器识别这样的字符串值?

我想避免在客户端24:00更改为00:00.我知道我有Starts和Ends属性,但我的模型验证验证Ends总是大于Starts.手动更改为23:59也很麻烦.基本上可以通过24:00仍然可以在服务器上解析.

最佳答案
我认为范围太小了.事实上,24:00是第二天00:00.
所以他们应该从00:00.00到23:59.99或其他什么.

最终答案(?)将客户端的24:00更改为1.0:00.
这将起作用,因为TimeSpan.Parse(“1.0:00”).TotalHours返回24

编辑:请参阅此处的文档:http://msdn.microsoft.com/en-us/library/se73z7b9.aspx.它显示了天,小时,分钟等的最大范围.根据下面的评论,小时数为0到23.

编辑:如果你只是让他们选择几个小时的整数,然后在服务器上解析它.

例如. TimeSpan ts = TimeSpan.FromHours(24)
返回1.00:00:00
当然你总是可以说ts.TotalHours它会返回24.

转载注明原文:asp.net-mvc – Asp.net MVC中的TimeSpan和“24:00”解析错误 - 代码日志