gpt4 book ai didi

asp.net-mvc - 调用操作时从不绑定(bind) Nullable DateTime 参数

转载 作者:行者123 更新时间:2023-12-01 10:13:03 25 4
gpt4 key购买 nike

我有以下功能签名:

public JsonResult PopulateGrid(int page, Guid? accountId, Guid? systemUserId, Guid? branchId, DateTime? fromDate, DateTime? toDate, HomeVisitType? homeVisitType)

除了 toDate 之外,每个参数都绑定(bind)得很好结果总是为空。
检查 Request.QueryString["toDate"] 时它检索正确的值,即 2010 年 9 月 30 日。
似乎 DateTime 在绑定(bind)时需要另一种格式。
什么是正确的格式?

最佳答案

对我的系统进行的快速测试表明,它需要 MM/DD/YYYY 中的数据,而不是 DD/MM/YYYY 中的数据,这可能就是您遇到问题的原因。我的猜测是,如果您在 fromDate 上尝试相同的日期,您也会遇到相同的 null 问题。
我已将应用程序中的当前文化更改为使用 DD/MM/YYYY 的文化,但它似乎没有任何效果。对于使用 10,01 而不是 10.01 的语言,十进制似乎有同样的问题......
来自 ASP.Net 团队的开发人员的更新。
“这是故意的。任何属于 URI 的部分(注意 URI 中的‘统一’)都被解释为来自不变的文化。这是为了让美国的用户复制链接并将其发送过来给英国 friend 的 IM 可以确信他的 friend 会看到完全相同的页面(例如,由于 DateTime 转换错误而不是 HTTP 500)。 通常,在 RouteData 或 QueryString 中传递的日期应该格式为 yyyy-mm-dd 以便跨文化 明确。
如果您需要以文化感知方式解释 QueryString 或 RouteData 参数,请将其作为字符串拉入,然后手动将其转换为所需的类型,并传入所需的文化。 (DateTime.Parse 具有允许您指定文化的重载。)如果您这样做,我建议还将所需的文化作为 QueryString 或 RouteData 参数,这样 URI 的“统一”部分就不会丢失,例如URL 将类似于 ...?culture=fr-fr&date=01-10-1990。”

关于asp.net-mvc - 调用操作时从不绑定(bind) Nullable DateTime 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3753569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com