我在 QueryString 中有开始日期,其值为:3/1/2012
DateTime.Parse(Request.QueryString["startdate"]).Month 返回月份数:1
但在我的控制器中,我有操作 Index(DateTime startDate) 和 startDate.Month 返回 3
有人可以解释为什么日期债券不能按预期工作吗?
顺便说一句,我已经在 web.config 中有文化了:
<globalization uiCulture="en-GB" culture="en-GB"/>
默认模型绑定器always解析查询字符串值时使用 InvarianCulture,无论您在 web.config 中配置哪种区域性。
- GET => 不变文化
- POST => 文化不可知论
因此,假设您有 2 个操作:
[HttpGet]
public ActionResult Foo(DateTime date)
{
...
}
[HttpPost]
public ActionResult Bar(DateTime date)
{
...
}
当您调用 Foo 操作时,您应该始终使用不变区域性来格式化查询字符串中的日期,而当您调用 Bar 操作并在 POST 主体有效负载中传递日期参数时,默认模型绑定器将使用中配置的区域性你的网络配置。
看看以下博客文章其中更详细地介绍了这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)