gpt4 book ai didi

asp.net - 看起来日期的 Binder 在 asp.net mvc 中不正确

转载 作者:行者123 更新时间:2023-12-05 00:35:01 26 4
gpt4 key购买 nike

enter image description here

我在 QueryString 中有 startdate,其值为:3/1/2012

DateTime.Parse(Request.QueryString["startdate"]).Month 返回月份数:1

但在我的 Controller 中,我有 Action Index(DateTime startDate) 和 startDate.Month 返回 3

有人可以解释为什么日期绑定(bind)不能按预期工作吗?

顺便说一句,我已经在 web.config 中有文化:

<globalization uiCulture="en-GB" culture="en-GB"/>

最佳答案

默认模型绑定(bind) 总是 在解析查询字符串值时使用 InvarianCulture,无论您在 web.config 中配置了哪种文化。

  • GET => 不变文化
  • POST => 文化不可知论

  • 所以假设你有两个 Action :
    [HttpGet]
    public ActionResult Foo(DateTime date)
    {
    ...
    }

    [HttpPost]
    public ActionResult Bar(DateTime date)
    {
    ...
    }

    当您调用 Foo 操作时,您应该始终使用不变的文化来格式化查询字符串中的日期,而当您调用 Bar 操作并在 POST 正文有效负载中传递日期参数时,默认模型绑定(bind)器将使用配置的文化你的 web.config。

    看看 following blog post其中更详细地介绍了这一点。

    关于asp.net - 看起来日期的 Binder 在 asp.net mvc 中不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9977239/

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