gpt4 book ai didi

.net DataAnnotation 和全局化问题(服务器端)

转载 作者:行者123 更新时间:2023-12-02 07:44:19 24 4
gpt4 key购买 nike

北美的日期格式是 MM/dd/yyyy

我正在为澳大利亚开发项目 (asp.net MVC 2),其中日期格式为 d/MM/yyyy

在 web.config 我有

        <globalization
fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-AU"
uiCulture="en-AU"
enableClientBasedCulture="true"
/>

在 views .net 中以正确的格式呈现日期 - “en-AU”,但是当我提交日期为 14/11/2011 的表单时,我的 ModelState.IsValid 等于 False。

如何教 dataannoation 正确验证“en-AU”格式的日期?

//更新

刚刚发现与 GET 相关的问题

using(Html.BeginForm("Search", "form", FormMethod.Post)) //Works
using(Html.BeginForm("Search", "form", FormMethod.Get)) //Does'n work

**看起来这是一个 .net 错误!!!

我尝试了新的 mvc2/3 项目

当我使用 GET 时,mvc 绑定(bind)不使用当前区域性**

谢谢。

最佳答案

此行为是设计使然。当您发出 GET 请求时,它会将日期放在 URL 中。 ASP.NET MVC 假设 URL 中的日期是不变的区域性。

为什么?

假设我创建了以下 URL:/posts/01-11-2011/并将其发送给您。这对你意味着什么?

好吧,这意味着给我看 2011 年 1 月 11 日的帖子,因为这适合我的文化。但您的文化可能将其表示为 2011 年 11 月 1 日。URL 应该唯一标识资源。相同的 URL 不应根据查看者的不同而有不同的含义。

因此我们决定我们的模型绑定(bind)器不会将值从 URL 转换为当前区域性,但转换来自表单帖子的值。这对我们来说很有意义,因为表单帖子不能四处发送,通常代表用户的输入。

关于.net DataAnnotation 和全局化问题(服务器端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124147/

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