如何将asp.net-mvc中Nullable DateTime参数在调用操作时避免绑定参数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计386个文字,预计阅读时间需要2分钟。
我有以下方法签名:
csharppublic JsonResult PopulateGrid(int page, Guid? accountId, Guid? systemUserId, Guid? branchId, DateTime? fromDate, DateTime? toDate, HomeVisitType? homeVisitType)
每个参数都绑定得很好,除了`toDate`。
我有以下功能signuture:public JsonResult PopulateGrid(int page, Guid? accountId, Guid? systemUserId, Guid? branchId, DateTime? fromDate, DateTime? toDate, HomeVisitType? homeVisitType)
每个参数都绑定得很好,除了toDate,结果总是为null.
检查Request.QueryString [“toDate”]时,它会检索正确的值,即30/09/2010.
似乎DateTime在绑定时需要另一种格式.
什么是正确的格式?
我已经将我的应用程序中的当前文化更改为使用DD / MM / YYYY的文化,它似乎没有任何效果.似乎与使用10,01而不是10.01的语言的十进制相同的问题…
从ASP.Net团队的开发人员处更新.
“这是故意的.任何属于URI的部分(注意URI中的”统一“)都被解释为它来自不变文化.这是美国用户复制链接并将其发送过来IM给英国的朋友可以确信他的朋友会看到完全相同的页面(例如,由于DateTime转换错误而导致的HTTP 500).通常,在RouteData或QueryString中传递的日期应该在格式化yyyy-mm-dd以便在不同文化中明确无误.
如果需要以文化感知方式解释QueryString或RouteData参数,请将其作为字符串拉入,然后手动将其转换为所需类型,并传入所需的文化. (DateTime.Parse具有允许您指定区域性的重载.)如果这样做,我建议还将所需的区域性作为QueryString或RouteData参数,以便URI的“Uniform”部分不会丢失,例如: URL看起来像……?culture = fr-fr& date = 01-10-1990.“
本文共计386个文字,预计阅读时间需要2分钟。
我有以下方法签名:
csharppublic JsonResult PopulateGrid(int page, Guid? accountId, Guid? systemUserId, Guid? branchId, DateTime? fromDate, DateTime? toDate, HomeVisitType? homeVisitType)
每个参数都绑定得很好,除了`toDate`。
我有以下功能signuture:public JsonResult PopulateGrid(int page, Guid? accountId, Guid? systemUserId, Guid? branchId, DateTime? fromDate, DateTime? toDate, HomeVisitType? homeVisitType)
每个参数都绑定得很好,除了toDate,结果总是为null.
检查Request.QueryString [“toDate”]时,它会检索正确的值,即30/09/2010.
似乎DateTime在绑定时需要另一种格式.
什么是正确的格式?
我已经将我的应用程序中的当前文化更改为使用DD / MM / YYYY的文化,它似乎没有任何效果.似乎与使用10,01而不是10.01的语言的十进制相同的问题…
从ASP.Net团队的开发人员处更新.
“这是故意的.任何属于URI的部分(注意URI中的”统一“)都被解释为它来自不变文化.这是美国用户复制链接并将其发送过来IM给英国的朋友可以确信他的朋友会看到完全相同的页面(例如,由于DateTime转换错误而导致的HTTP 500).通常,在RouteData或QueryString中传递的日期应该在格式化yyyy-mm-dd以便在不同文化中明确无误.
如果需要以文化感知方式解释QueryString或RouteData参数,请将其作为字符串拉入,然后手动将其转换为所需类型,并传入所需的文化. (DateTime.Parse具有允许您指定区域性的重载.)如果这样做,我建议还将所需的区域性作为QueryString或RouteData参数,以便URI的“Uniform”部分不会丢失,例如: URL看起来像……?culture = fr-fr& date = 01-10-1990.“

