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

标签 asp.net-mvc parsing model-binding timespan

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

一切都按预期工作,除了每当用户将正确的范围句柄设置为 24:00 时,默认模型绑定(bind)器无法解析此 TimeSpan .

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

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

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

我想避免将客户端上的 24:00 更改为 00:00。我知道我有StartsEnds属性,但我的模型验证验证了 Ends总是大于 Starts 。手动更改为 23:59 也很麻烦。 基本上有可能经过 24:00 并且仍然在服务器上进行解析

最佳答案

我认为这个范围有点太大了。 24:00 实际上是第二天的 00:00。 所以它们应该从 00:00.0023:59.99 或其他。

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

编辑:请参阅此处的文档:http://msdn.microsoft.com/en-us/library/se73z7b9.aspx 。它显示天、小时、分钟等的最大范围。根据我下面的评论,小时的范围是 023

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

例如。 TimeSpan ts = TimeSpan.FromHours(24) 返回1.00:00:00 当然,您始终可以说ts.TotalHours,它会返回24

关于asp.net-mvc - Asp.net MVC 中的 TimeSpan 和 "24:00"解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415473/

相关文章:

asp.net-mvc-3 - 用于绑定(bind)嵌套属性值的自定义模型绑定(bind)器

javascript - 如何在 ASP.NET MVC Controller 中正确发送和处理 JSON 对象?

asp.net - MVC5中IdentityDbContext和IdentityDbContext<ApplicationUser>有什么区别

c# - Asp.net MVC Bundle 能否在 CSS 中改造 LESS?

asp.net-mvc - 如何使用 MVC.Net 验证手机/座机号码格式?

jquery - 返回的 JSON 是函数调用的结构。不知道如何用 jQuery 解析

c# - 复杂抽象对象的 WebAPI 自定义模型绑定(bind)

asp.net-mvc - MVC GlobalFilters 未触发

php - 如何解析由 php 中 json_enocoded 的 url 接收的 json 数据

SQL Server,将具有多行html代码的文本解析为表格